需要:java将数据写入excel,存放到磁盘下
使用:
new POIUtil().submitFill(logs,"filepath");
代码:
package com.ls.fostation.utils;
import com.ls.fostation.model.Log;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
/**
* @Description => excel工具类
* @about=>yangjianzhi-version1.0-2019/4/15
**/
public class POIUtil {
//工作簿
private XSSFWorkbook workbook;
private int columnWidth =0;
public POIUtil(){
this.workbook = new XSSFWorkbook();
}
/**
* @Description: 提交数据类型的excel输出
* @Param: [ts]
* @return: void
* @about=>yangjianzhi-version1.0-2019/4/15
*/
public void submitFill(List<Log> ls, String PackingPath) throws IOException {
XSSFSheet sheet = workbook.createSheet("清单");
int size=0;
Log log = new Log();
//输出内容
for (int i = 0; i < ls.size(); i++) {
log = ls.get(i);
size = log.getList().size();
//当i = 0时,输出第一行tilte
fillRow(sheet, log.getList(), i + 1);
}
for (int i = 0; i < size; i++) {
sheet.autoSizeColumn(i);
sheet.setColumnWidth(i,sheet.getColumnWidth(i)*17/10);
}
File file = new File(PackingPath + "//清单.xlsx");
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
write(file);
}
/**
* @Description: 将excel文件输出到指定文件夹
* @Param: [file]
* @return: void
* @about=>yangjianzhi-version1.0-2019/4/15
*/
public void write(File file) throws IOException{
FileOutputStream out = new FileOutputStream(file);
workbook.write(out);
out.close();
}
/**
* @Description: 根据list输出数据在第rnum行中
* @Param: [sheet, list, rnum]
* @return: void
* @about=>yangjianzhi-version1.0-2019/4/15
*/
public void fillRow(XSSFSheet sheet,List<String> list,int rnum) {
XSSFRow row = sheet.createRow(rnum);
Cell cell;
for(int i = 0;i< list.size(); i++ ){
cell = row.createCell(i);
cell.setCellValue(list.get(i));
}
}
}