目录
一、介绍
java使用jxl库保存信息到本地Excel文件
二、代码实现
/**
* 保存信息到本地excel
* @param errorInfoList 错误信息列表
* @param errorInfoName 要保存错误信息名称
* @return webPath
*/
public static String saveErrorInfoToExcel(List<ErrorInfoDTO> errorInfoList,String errorInfoName){
if (errorInfoList == null || errorInfoList.size() == 0){
return null;
}
String dirName = Sys.ERROR_INFO_TEMP;
String dirPath = FileUtils.getSavePath(dirName);
if (!FileUtils.dirIsExist(dirPath)){
FileUtils.creatDir(dirPath);
}
String webPath = dirName + Sys.BACKSLASH + errorInfoName + "_" + UuidUtil.get32UUID() + Sys.DOT + "xls";
String savePath = FileUtils.getSavePath(webPath);
String signField = errorInfoList.get(0).getSignField(); //错误标记字段名
int row = 2; //表格正文行号
//创建excel输出流
WritableWorkbook workbook = null;
OutputStream os = null;
try {
os = new FileOutputStream(savePath);
workbook = Workbook.createWorkbook(os);
//创建工作表
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
Label label = null;
sheet.mergeCells(0,0,2,0);
//添加表格标题
label = new Label(0,0,errorInfoName + "详情表", ExcelUtils.getCellFormat("tableTopTitle"));
sheet.addCell(label);
//添加表格行标题
label = new Label(0,1,"序号",ExcelUtils.getCellFormat("tableTitle"));
sheet.addCell(label);
label = new Label(1,1,signField,ExcelUtils.getCellFormat("tableTitle"));
sheet.addCell(label);
label = new Label(2,1,"错误信息",ExcelUtils.getCellFormat("tableTitle"));
sheet.addCell(label);
//写出错误信息到excel文件
for (ErrorInfoDTO errorInfoDTO:errorInfoList){
label = new Label(0,row,String.valueOf(row - 1),ExcelUtils.getCellFormat("tableBody"));
sheet.addCell(label);
label = new Label(1,row,errorInfoDTO.getSignValue(),ExcelUtils.getCellFormat("tableBody"));
sheet.addCell(label);
label = new Label(2,row,errorInfoDTO.getInfo(),ExcelUtils.getCellFormat("tableBody"));
sheet.addCell(label);
row += 1;
}
//设置列宽
sheet.setColumnView(0,10);
sheet.setColumnView(1,20);
sheet.setColumnView(2,40);
workbook.write();
workbook.close();
os.flush();
os.close();
}catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (os != null){
os.flush();
os.close();
}
}catch (Exception e) {
e.printStackTrace();
}
}
return webPath;
}