上一篇文章 Java操作Excel之理解JXL--读取Excel 说到如何用JXL读取Excel文件,
现在来看看如何读取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");
- WritableCellFormat cellFormat1 = new WritableCellFormat(font,format);
- WritableCellFormat cellFormat2 = new WritableCellFormat(font);
- cellFormat1.setBorder(Border.ALL, jxl.format.BorderLineStyle.THIN);
- cellFormat2.setBorder(Border.ALL, jxl.format.BorderLineStyle.THIN);
- A2.setCellFormat(cellFormat1);
- A1.setCellFormat(cellFormat2);
还有不要忘记关闭WritableWorkbook和Workbook以释放资源:
wwb.close();
wb.close();
最后就可以你需要的方式从输出流targetFile中取得Excel,比如直接生成文件存本地,输出到客户端浏览器等。
如果还有其他需求,按照这种思路,再参照APIDoc相信可以很容易的解决。
至此,Java操作Excel之理解JXL就写完了。下一篇会介绍如何用Jakarta POI操作Excel。
分享到:
相关推荐
。。。
。。。
jxl 读取Excel模板并写入数据通用工具类
java向EXCEL中写入数据。里面有一个ExcelWrite.java的文件和一个jxl的jar包。
Java-Excel开发包 jxl.jar 可用Java来操作Excel,读取,写入
java读取Excel文件-jxl附件列表: ReadAndWriteExcel.java (5.52 KB) jxl.jar (688.03 KB) jxl读Excel文件.doc (88.50 KB)
jxl-2.6.12.jar,用于读取和写入Excel文件, JExcelApi is a java library which provides the ability to read, write, and modify Microsoft Excel spreadsheets.
JXL----JAVA操作Excel文档的包
读取excel中的数据所需jar包,然后可以写入到xml。 。 。 。 。
Java生成excel jxl 代码Java生成excel jxl 代码
java操作 Excel 的jar包:jxl.jar
java jxl 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据
java利用jxl.jar包读取excel文件
jxl是用于操作excel的jar包,是2.6.10版本的jar包,可以方便使用importSheet函数 第一次上传资源,希望可以对大家有用,多多支持
java读取excel java操作excel jxl API
jxl模版生成excel,采用类似EL表达式的方式生成模版
java导入导出excel操作(jxl) Java解释Excel数据(jxl.jar包的使用) 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够...
java通过jxl生成excel实例,读取excel,复制,修改excel文件
java操纵excel的jar包
本项目实现了通过jxl包向指定的excel模板中写入数据,并且保留原来的模板,相当于先复制在写入。