`

按照指定模板生成excel写的workbook

阅读更多
一篇文章 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"); //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。


分享到:
评论

相关推荐

    java poi 根据excel模板生成excel文件

    在本文中,我们将深入探讨如何使用Java POI库根据已有的Excel模板生成新的Excel文件。 首先,理解“模板”在Excel中的概念非常重要。模板通常包含预设的格式、样式、公式和数据结构,可以作为创建新文件的基础。在...

    Java POI根据模板生成Excel(xlsx)文件

    在本示例中,我们关注的是如何利用Java POI来根据模板生成.xlsx格式的Excel文件。这个过程涉及到对Excel模板的理解、读取、修改以及最终的保存。 首先,理解模板文件是关键。一个.xlsx模板文件实际上是由一系列XML...

    java 生成Excel,可根据模板格式生成 Excel打印专用 报表

    生成Excel报表时,你需要先创建一个Workbook对象,它是Excel文件的基础结构。 1. **创建Workbook对象**: - 对于.xlsx文件,可以使用`XSSFWorkbook()`构造函数创建`XSSFWorkbook`对象。 - 对于.xls文件,可以使用...

    读取excel中的数据并生成指定模板的excel中(生成成绩单)

    本文将详细讲解如何在Visual Studio 2010 (VS2010)环境下,利用C#语言来读取Excel中的数据,并生成指定模板的Excel文件,以实现成绩单的自动生成。 首先,我们需要了解的是C#中处理Excel的库。在VS2010时期,最常见...

    根据Excel模板,生成副本并添加数据,截取指定区域生成图片

    标题提到的"根据Excel模板,生成副本并添加数据,截取指定区域生成图片"是一种高效的工作流解决方案,它结合了Python编程语言和Microsoft Excel的特性。这个过程涉及到多个知识点,下面将详细解释。 首先,**Excel...

    使用aspose导出Excel(根据模板导出excel).zip

    创建模板时,你可以利用Excel的公式、条件格式、图表、图片等特性,使得最终生成的Excel文件具备丰富的展示效果。模板的设计应当尽可能考虑到可能的数据范围和结构,以便于数据的注入和导出。 接下来,使用Aspose....

    使用poi根据导入模板生成excel

    在本项目中,“使用poi根据导入模板生成excel”是核心任务,这意味着我们需要利用POI库处理已有的Excel模板,生成新的Excel表格,并填充数据。 首先,我们需要了解Apache POI的基本结构和使用方法。POI提供了HSSF...

    jxl模版生成excel

    2. **模板生成**:使用jxl,你可以预先创建一个Excel模板,包含固定的格式、样式和部分静态内容。然后通过编程方式,将动态数据填入模板中的特定位置,生成最终的Excel文件。 3. **EL表达式模拟**:虽然EL主要用于...

    Aspose无需模板导出Excel带Chart

    【Aspose无需模板导出Excel带Chart】是一个高级的编程技术,主要应用于处理Microsoft Excel文档。Aspose.Cells是Aspose公司开发的一个强大的组件,它允许程序员在不依赖Microsoft Office的情况下,进行Excel文件的...

    java 根据简单对象自动 生成excel

    在Java编程中,生成Excel文件是一项常见的任务,特别是在数据导出、报告生成或者数据分析场景下。本示例探讨的是如何利用反射和简单的对象模型来自动创建Excel文件。这个项目的核心思想是通过对象的属性(字段)及其...

    生成下拉列表excel模板.rar

    它很可能包含了生成Excel模板的核心逻辑。在这个类中,开发者可能会创建一个`Workbook`对象来代表Excel工作簿,然后创建`Sheet`对象表示工作表,并定义`Row`和`Cell`来填充数据。Apache POI提供了多种方法来设置...

    excel模板读写

    在IT行业中,Excel模板的读写是一项常见的任务,特别是在数据处理、数据分析以及报表生成等领域。本文将详细探讨如何使用Java编程语言来实现Excel模板的读写操作,以便于理解和应用。 首先,我们要知道,Java中读写...

    POI使用Excel模板文件循环输出行并导出Excel

    Apache POI是一个强大的Java库,专门用于处理Microsoft ...通过循环读取数据和应用模板,我们可以快速生成大量定制化的Excel报告。在"poiDemo2"这个示例中,你可以找到具体实现这些步骤的代码,进一步学习和参考。

    springboot + poi导出指定格式Excel模板

    在本文中,我们将深入探讨如何使用SpringBoot和Apache POI库来导出指定格式的Excel模板。Apache POI是Java领域广泛使用的库,用于读写Microsoft Office格式的文件,其中包括Excel(.xlsx 和 .xls)文件。SpringBoot...

    JXL使用模板通过el表达式生成excel文件

    在JXL中,结合EL表达式,我们可以动态地生成Excel内容,这使得在模板基础上生成复杂的数据报告变得非常便捷。 **步骤1:准备Excel模板** 首先,你需要创建一个Excel模板文件,这个模板包含你想要在生成的Excel中...

    java复杂模板excel导出例子

    在Java编程中,导出复杂的Excel模板是一项常见的需求,尤其在数据分析、报表生成或数据交换等场景中。本文将深入探讨如何使用Java实现这一功能,包括选用的库、步骤、以及处理复杂模板的关键技巧。 首先,Java中最...

    freemarker生成复杂excel,带换行

    在生成Excel时,Freemarker将根据模板和这个数据对象创建一个带有换行的单元格。 为了将Freemarker模板转换为Excel文件,你需要一个实现此功能的库,如Apache POI。Apache POI是一个流行的Java API,用于读写...

    Java生成Excel文件

    在Java编程中,生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出功能中。本篇文章将深入探讨如何使用Java来创建Excel文件,并基于提供的标签“源码”和“工具”分享一些实用的方法。 首先,Java...

    POI按照模板导出Excel

    本教程将深入讲解如何使用Apache POI按照模板导出Excel文件。 一、Apache POI简介 Apache POI是一个强大的库,它允许Java程序员操作Microsoft Office格式的文件。在Excel方面,POI支持HSSF(Horizontally Stored ...

    java实现自定义excel模板导出excel并可保存客户端和在线打开

    在Java编程环境中,生成自定义Excel模板是一项常见的需求,尤其在数据分析、报表生成等领域。本文将深入探讨如何使用Java和jxl库来实现这一功能,让开发者能够创建任意复杂格式的Excel文件,并允许用户在客户端保存...

Global site tag (gtag.js) - Google Analytics