引起这个报错原因是:导出的数据里面包含了整型数据。虽然能导出Excel数据。但是会报这个Error: integer expected 错误!
直接把需要改正的代码贴上来:--->一定要设置单元格格式为 :: 文本 ::
/**设置单元格格式为文本格式*/
HSSFCellStyle cellStyle = workBook.createCellStyle();
HSSFDataFormat format = workBook.createDataFormat();
cellStyle .setDataFormat(format.getFormat("@"));
cell.setCellStyle(cellStyle );//设置单元格格式为"文本"
cell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置中文字符
/************************* 以下这一行是至关重要的 ******************************/
cell.setCellType(HSSFCell.CELL_TYPE_STRING); //要设置文本型,不然遇到整型数据格式可能错误
private static HSSFWorkbook writerToHBExcel(List sheetList,String sheetName, int initRow,
int initCol, int endRow, int endCol) {
if (sheetList != null && sheetList.size() > 0) {
workbook = createExcel();
HSSFCellStyle cellStyle = workbook.createCellStyle();// 设置单元格格式
Iterator sheetIt = sheetList.iterator();
sheet = createSheet(workbook, sheetName);
/*********************************************** 样式定义 **********************/
sheet.setColumnWidth((short) 0, (short) 6000);
sheet.setColumnWidth((short) 1, (short) 3400);
sheet.setColumnWidth((short) 2, (short) 16000);
sheet.setColumnWidth((short) 3, (short) 16000);
sheet.setColumnWidth((short) 4, (short) 3400);
HSSFFont font2 = workbook.createFont();
font2.setFontName("宋体");
font2.setFontHeight((short) 220);
cellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);// 下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框
cellStyle.setWrapText(true);
cellStyle.setFont(font2);
/*********************************************** 样式定义 **********************************************/
int i = 0;
while (sheetIt.hasNext()) {
// 创建新行
HSSFRow row = createRow(sheet, i++);
// 创建单元格
Iterator cellIt = ((List) sheetIt.next()).iterator();
int j = 0;
while (cellIt.hasNext()) {
HSSFCell cell = createCell(row, j++);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置中文字符
cell.setCellType(HSSFCell.CELL_TYPE_STRING); //要设置文本型,不然遇到整型数据格式可能错误
// 写入到具体单元格
cell.setCellStyle(cellStyle);// 设置单元格格式为“文本”
setCellValue(cell, cellIt.next());
}
}
}
hbCell(initRow, initCol, endRow, endCol);
return workbook;
}