现在来看看如何读取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。
分享到:
相关推荐
本文将详细讨论如何使用JXL库创建一个通用的工具类来读取Excel模板并填充数据。 首先,我们需要了解JXL库的基本用法。JXL库提供了多种API,可以用来操作Excel文件的各个部分,包括工作簿(Workbook)、工作表...
总的来说,`jxl-report.jar`和`freemarker-util-0.0.1.jar`的组合为Java开发者提供了一种高效、灵活的方式来生成Excel报表,特别是对于那些需要大量数据处理和动态更新的场景。这种技术在数据分析、财务报告、销售...
JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可读取Excel数据并转换为Java对象。 **描述解析:** 描述中提到的"采用类似EL表达式的方式...
本文将深入探讨如何利用`jxl`包来实现向Excel模板中写入数据,并保留原有模板的完整性。 首先,让我们了解`jxl`库的基本概念。`jxl`库提供了丰富的API,可以方便地操作Excel文件的各种组件,如工作簿(Workbook)、...
- **读取Excel文件**:使用JXL或POI库加载Excel文件。 - **创建水印图像**:根据`Model`中的数据动态生成水印图像。 - **将水印图像添加到Excel页面上**:使用POI提供的API来实现这一功能。 #### 示例代码框架 ```...
在Java编程环境中,生成自定义Excel模板是一项常见的需求,尤其在数据分析、报表生成等领域。本文将深入探讨如何使用Java和jxl库来实现这一功能,让开发者能够创建任意复杂格式的Excel文件,并允许用户在客户端保存...
在JXL中,结合EL表达式,我们可以动态地生成Excel内容,这使得在模板基础上生成复杂的数据报告变得非常便捷。 **步骤1:准备Excel模板** 首先,你需要创建一个Excel模板文件,这个模板包含你想要在生成的Excel中...
这个名为"jxl-2.6.12包"的压缩文件包含了jxl库的核心组件,使得开发者能够方便地在Java应用中读取、写入以及操作Excel数据。本文将详细介绍jxl-2.6.12包中的三个关键部分:jxl-2.6.12.jar(二进制包)、jxl-2.6.12-...
在Java编程环境中,导出数据到Excel是一种常见的需求,特别是在数据分析、报表生成或者数据交换的场景下。JXL是一个流行的库,它允许开发者方便地读取、写入和操作Excel文件。本文将深入探讨如何利用JXL库通过模板来...
总的来说,JXL库提供了一种高效且灵活的方式,使得开发者能够方便地根据模板生成Excel文件,这对于报表生成、数据分析等场景非常有用。通过阅读和理解`FinalAppraiseExportAction.java`的源代码,我们可以深入了解这...
2. 报表生成:使用Java可以根据模板生成报表,自动将数据填充到报表中。 3. 文件自动化处理:使用Java可以自动处理大量的Excel文件,例如批量修改文件名、批量导出数据等。 Java操作Excel文件的技术难点: 1. ...
Struts2是一个流行的Java web框架,它为开发者提供了一种结构化的方式来构建应用程序,而JXL则是一个Java库,用于读取、写入和修改Excel电子表格文件。这篇博客文章结合了这两个技术,展示了如何在Struts2应用中生成...
JxlExcel 是基于jxl封装的java excel读写库,特性如下:可以像读写文件一样方便的读取数据和写入数据数据支持数组、map、bean三种方式支持xml配置excel模板如何使用?模板定义在类路径下新建一个jxl-excel.xml的模板...
4. **读取类操作**:提供的Java代码示例可能包含一个读取Excel文件的类,这个类通常会通过JXL库打开Excel文件,遍历每个工作表和单元格,读取其中的数据,并可能将其存储到内存中的数据结构(如数组、列表或自定义...
JXLS则采用模板的方式操作Excel,它允许开发者创建一个Excel模板,然后根据数据动态填充模板,生成最终的Excel文件。这种方式适用于需要批量生成格式统一的Excel报告的情况。使用JXLS的基本流程包括: 1. 创建Excel...
2. `jxls-reader-0.9.2.jar`:这是jxls的扩展库,专门用于读取Excel数据,可能包含更高级的功能,如动态数据解析和转换。 3. `readme.txt`:通常包含项目的基本信息、安装指南、使用说明或版本更新内容。 4. `...
在Java开发中,导出数据到Excel是一种常见的需求,特别是在数据处理、报表生成或数据分析的场景下。jxl库是一个广泛使用的开源库,它允许开发者用Java读取、写入和修改Excel文件。本篇文章将深入探讨如何使用jxl库来...
【Java数据导入导出Excel】涉及的技术点主要集中在Java处理Excel文件的能力上,这通常用于数据导入导出、报表生成等场景。以下是相关的知识点: 1. **Java Excel库**: - **jxl库**: 示例代码中使用了`jxl`库来...
例如,`Workbook.read(File)`用于读取Excel文件,`Sheet.addCell(Cell)`用于添加单元格数据。 5. 可能会有方法用于解析日志数据,将它们转换为适合Excel格式的结构,然后使用JXL API写入到Excel工作簿中。 6. 在处理...
在Java编程中,JXL库是一个广泛使用的工具,用于读取和写入Excel文件。这个库提供了丰富的API,使得开发者能够方便地处理Excel数据。在标题和描述中提到的示例,主要展示了如何使用JXL来写入Excel数据,同时不覆盖...