上一篇讲到freemarker导出excel这篇讲用jxl导出excel
freemarker导出通用性比较高,只需要把freemarker的模板进行替换就可以,jxl则比freemarker相对繁琐一点,但是不会像freemarker一样打开excel提示文件格式不正确,用户体验感高一些;废话不多说
具体实现如下:
1:导入jxl的jar包
同样外部导出jar包或者pom文件加入相应的mevan依赖都可以。、
2:创建想要导出的excel模板放入文件
3:导入模板
ctrl层:
说明:这里的File.separator是文件分隔符。文件的地址是编译后的地址,而不是项目地址
比如说要在temp目录下建立一个test.txt文件,在Windows下应该这么写:
File file1 = new File ("C:\tmp\test.txt");
在Linux下则是这样的:
File file2 = new File ("/tmp/test.txt");
如果要考虑跨平台,则最好是这么写:
File myFile = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");
我这边是先将临时文件夹下面的文件全部删除,然后将模板的内容复制到新文件中存储于临时文件夹下
重点:jxl将数据写入excel(每一个模板都不一样)
总结下来就是:(我这边是已经有模板的直接获取,也可以自己在代码里面创建一个模板以及其格式)
先获取已有的模板(通过模板路径),wb=Workbook.getWorkbook(new File(path),set);,再创建一个可读写的副本WriteableWorkbook workbook=Workbook.createWorkbook(new File(path), wb);然后对副本进行操作
sheet =workBook.getSheet(0);得到工作簿
再对单元格进行操作:
1:通过行和列得到可读写的列 sheet.getWriteableCell();
1:设置单元格样式WritableCellFormat 获取(cell.getCellFormat())
2:填值new jxl.write.type(各种类型)
3:sheet.addCell(cell);
最后写入(刷新)工作薄。关掉工作薄
workBook.write();
workBook.close();