Excel simple tool class

package com.by.demo.utils;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
/*
 *Ex生成
 * */
public class ExUtils {
public static HSSFWorkbook ExCreate(List



    < String > tableNames , List <?> objects , Integer row , Integer col ) throws Exception {
 // 1. Create a workbook, corresponding to an Excel file
 HSSFWorkbook hssfWorkbook = new HSSFWorkbook () ;
 // 2. Add a sheet to the workbook , corresponding to a sheet in Excel
 HSSFSheet hssfSheet = hssfWorkbook . createSheet () ;
 // 3. Add a header to the sheet
 HSSFRow hssfRow = hssfSheet . createRow                                                ( 0 ) ;
 // 4. Create a cell, set the value header, set the header to center
 // HSSFCellStyle hssfCellStyle = hssfWorkbook.createCellStyle();
 // hssfCellStyle.setAlignment();
 if ( tableNames != null && tableNames . size () != 0 ) {
 for ( int i = 0 ; i < tableNames . size () ; i ++ ) {
 hssfRow . createCell ( i ) . setCellValue                                            (tableNames.get(i));
}
        }
Field[] fields = null;
Field ft = null;
if (objects == null) {
return hssfWorkbook;
}
if (tableNames == null || tableNames.size() == 0) {
fields = objects.get(0                                                                            ).getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
hssfRow.createCell(i).setCellValue(fields[i].getName().toString());
}
        }
for (int i = 0                                                ; i < objects.size(); i++) {
            hssfRow = hssfSheet.createRow(i + 1);
            fields = objects.get(i).getClass().getDeclaredFields();
            for (int j = 0; j < fields.length; j++) {
                ft = fields[j];
                ft.setAccessible(true);
                hssfRow.createCell(j).setCellValue(ft.get(objects.get(i)).toString());
            }
        }
        return hssfWorkbook;
    }

    public static void downex(String fileName, HttpServletResponse response, HSSFWorkbook hssfWorkbook) throws IOException {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        hssfWorkbook.write(byteArrayOutputStream);
        byte[] bytes = byteArrayOutputStream.toByteArray();
        InputStream inputStream = new ByteArrayInputStream(bytes);
        response.reset(); // 必要地清除response中的缓存信息
        // 在浏览器提示用户是保存还是下载
        response.setContentType("application/octet-stream; charset=UTF-8");// 根据个人需要,这个是下载文件的类型
        response.setHeader("Content-Disposition", "attachment;filename="
                + new String((fileName + ".xls").getBytes(), "iso-8859-1"));
        OutputStream outputStream = response.getOutputStream();
        byte[] content = new byte[1024];
        int length;
        while ((length = inputStream.read(content)) != -1) {
            outputStream.write(content, 0, length);
        }
        inputStream.close();
        outputStream.close();
    }

}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324768483&siteId=291194637