Java中可以用代码生成Excel,但是针对比较复杂的Excel用代码生成就会比较麻烦,这就适合使用Excel模板和代码生成两种方式在一起使用。
举例:现在要生成如下的Excel
实现方式:第一个表格和第二个表格表头使用模板,第二个表格内容和第三个表格使用代码动态生成
代码如下:
//jsonObject 是前台传入的Excel表格内需要的数据
public static String exportBaseLineDataExcel(HttpServletRequest request, HttpServletResponse response,
JSONObject jsonObject){
JSONObject resultJson = new JSONObject();
try {
request.setCharacterEncoding("UTF-8");
String fileName = "基线信息报表-" ;
fileName = URLEncoder.encode(fileName, "UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/x-download");
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
// 1.读取已有的基线模板
String ret = "D:\\file\\BaselineInfo.xls";//Excel模板地址
FileInputStream fis = new FileInputStream(ret);
POIFSFileSystem ps = new POIFSFileSystem(fis);
HSSFWorkbook workbook = new HSSFWorkbook(ps);//这里使用的Excel2003,要注意Excel版本
HSSFSheet hssfSheet = workbook.getSheetAt(0);
// 3.向基线模板中一行一行写入信息
HSSFRow row = hssfSheet.getRow(1);
Cell cell = row.getCell(2);//合并的单元格取第一个cell的位置对象
cell.setCellValue("飞机基线信息");
row = hss