现在来看看如何读取Excel模板然后把动态数据写入到模板以生成特定格式的Excel。
同样的思路,先来考虑下会涉及到那些对象,和上篇文章读取相比这里涉及到一个写入的步骤,所以JXL必然会提供一个对象
来支持写入,这就是WritableWorkbook。那么如何得到到这个类的实例,查看APIDoc发现Workbook类提供了几个
静态的createWorkbook方法返回WritableWorkbook实例,可以看到众多createWorkbook方法主要分为两类:一个参数
和两个参数。简单分析可以得知前者仅仅是用来直接生成Excel文件,后者先读取模板再向模板写入数据然后生成Excel。
(还有一个三参数方法加上一个用来设置workbook的参数)
现在按照上篇文章中所讲述的流程来看看读取模板并写入需要那些步骤。
第一步:选择模板文件:
Workbook wb = Workbook.getWorkbook(new File(realpath));
第二步:通过模板得到一个可写的Workbook:
WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);
第一个参数是一个输出流对象,比如可以
ByteArrayOutputStream targetFile = new ByteArrayOutputStream();
这样定义这个输出流对象。第二个参数代表了要读取的模板。
第三步:选择模板中名称为StateResult的Sheet:
WritableSheet wws = wwb.getSheet("StateResult");
如果需要也可以创建Sheet
WritableSheet wws = wwb.createSheet("Sheet名称",i);
第四步:选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元格:
Label A1 = (Label)wws.getWritableCell(0,0);
A1.setString("单元格内容")
或
Number A2 = (Number)wws.getWritableCell(0,1);//Number是jxl.write.Number
A2.setValue(3.3);
也可以创建新的单元格并且加入到Sheet中
Label C1 = new Label(2,0,"单元格内容");
wws.addCell(C1);
或
Number C1 = new Number(2,0,3.3);
wws.addCell(C1);
在生成Excel报表的时候还会遇到一种需求就是数据的格式问题,我们可能希望数值型单元格以某种格式显示,而字符串型单元格以另
一种格式显示。这些可以通过WritableFont、NumberFormat、WritableCellFormat等实现,下例给单元格A1、A2添加了不同的格式。
java 代码
WritableFont font= new WritableFont(WritableFont.createFont("宋体"),10,WritableFont.NO_BOLD);
NumberFormat format = new NumberFormat("###,##0.00"); //NumberFormat是jxl.write.NumberFormat
WritableCellFormat cellFormat1 = new WritableCellFormat(font,format);
WritableCellFormat cellFormat2 = new WritableCellFormat(font);
cellFormat1.setBorder(Border.ALL, jxl.format.BorderLineStyle.THIN); //Border是jxl.format.Border
cellFormat2.setBorder(Border.ALL, jxl.format.BorderLineStyle.THIN); //Border是jxl.format.Border
A2.setCellFormat(cellFormat1);
A1.setCellFormat(cellFormat2);
还有不要忘记关闭WritableWorkbook和Workbook以释放资源:
wwb.close();
wb.close();
最后就可以你需要的方式从输出流targetFile中取得Excel,比如直接生成文件存本地,输出到客户端浏览器等。
如果还有其他需求,按照这种思路,再参照APIDoc相信可以很容易的解决。
至此,Java操作Excel之理解JXL就写完了。下一篇会介绍如何用Jakarta POI操作Excel。
分享到:
相关推荐
javaEXCEL
java excel中表格导成png图片,整理供大家参考
java Excel导出 Excel数据处理
java excel 生成6级级联。加一个poi.jar就行。
java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入
java exceljava exceljava exceljava exceljava exceljava exceljava excel
java excel poi合并单元格
java实现excel转pdf文件,并且支持excel单元格中带有图片的转换 基于 aspose,Excel转为 pdf工具类 Java Excel转为PDF(aspose)工具类 复造轮子 复制即用
Java Excel Api及详细教程,适合第一次在Eclipse上读取Excel同学,基本步骤!
java Excel和Word导出需要添加的jar包,直接导入即可用
javaExcel大数据导出百万数据优化导出javaExcel大数据导出百万数据优化导出
java excel转html 支持32为和64位
关于java EXCEL poi 合并后无法显示或无法设置边框问题 【本人亲测】 excel poi 新手! 坑了1.5天!
java excel导出数据
java Excel写入导出,全部文件,包括jar包。
JAVA EXCEL API简介
全面挖掘Java Excel API 使用方法 .
java Excel Api 为对excel的操作提供了方便的API,实现了java对excel的操作,可以实现将数据导入到excel表中。
java将Excel文件转换未pdf文件。依赖itext和poi。附件是一个完整的工程。
javaMail和javaExcel需要的jar包,javaMail和javaExcel需要的jar包,javaMail和javaExcel需要的jar包,javaMail和javaExcel需要的jar包,javaMail和javaExcel需要的jar包