`

按照指定模板生成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。


分享到:
评论

相关推荐

    jxl 生成excel 简易教程

    jxl是对excel强有力的操纵工具,它具有丰富的API可以满足对excel的各种开发需要。

    NOPI实现Excel的打印

    POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。目前POI的稳定版本中仅支持Excel文件格式xls,其他的都属于不稳定版本(放在...

    Python实现EXCEL图标自动生成

    要实现Python自动生成Excel图表,可以按照以下步骤进行操作: 导入所需的库: 使用openpyxl库来读取和写入Excel文件。 使用matplotlib库来生成图表。 打开Excel文件: 使用openpyxl.load_workbook()函数打开已有...

    使用Apache开源POI和jXLS两种API生成报表

    jXLS 通过读取模板文件,获取其中的数据,然后根据模板生成报表。jXLS 提供了一个灵活的报表生成机制,可以根据不同的数据源生成报表。 使用 jXLS 生成 Excel 报表可以通过创建一个 jXLS Template 对象,然后使用 ...

    使用C#和Excel进行报表开发(八)-用程序绑定数据

    使用C#和Excel进行报表开发(八)-用程序绑定数据 本文主要介绍了如何使用C#和Excel进行报表开发,并实现程序绑定数据。下面是相关的知识点: ...通过使用C#和Excel,可以实现报表开发中的数据绑定和报表生成。

    py办公示例-批量生成PPT版荣誉证书.zip

    示例源码的功能是将Excel中的名单数据插入到PPT模板中生成荣誉证书。 这个脚本用Python处理PPT和Excel文件,以便根据名单生成荣誉证书。 导入所需的库: from pptx import Presentation: 导入处理PPT文件的库。 from...

    NPOI,c#操作excel的建议组建dll(包括详细使用手册)

    NPOI,c#操作excel的建议组建dll(包括详细使用手册) ...3.1 基于.xls模板生成Excel文件 3.2 生成九九乘法表 3.3 生成一张工资单 3.4 从xls文件中抽取文本 3.5 巧妙使用Excel Chart 3.6 导入Excel文件

    VC FlexGrid导出Excel

    在弹出的Confirm Classes里选择_Application,Workbooks,_Workbook,Worksheets ,_Worksheet,Range ,Font 这几个类,并确定新生成的.CPP和.h文件的名称为Excel.cpp和Excel.h,然后确定。 5、添加类CColorButton...

    excel 批量操作sheet文档 VBA

    Excel 批量操作 Sheet 文档 VBA Excel VBA 是 Excel 中的一种编程语言,用于自动化 Excel 操作。它可以帮助用户批量操作 Sheet 文档,提高工作效率。本文将详细介绍如何使用 VBA 实现批量操作 Sheet 文档。 一、...

    simple-export是一款导出工具包,目标是根据模板快速导出,基于openpyxl

    执行以下代码会在当前文件夹生成一个val1.xlsx #!/usr/bin/env python # -*- coding: utf-8 -*- from simple_export.example import test1 test1() example 方法名:write_excel_for_template 入参:value # {...

    .Net创建Excel文件(插入数据、修改格式、生成图表)的方法

    它们都会生成Microsoft.Office.Interop.Excel.dll。 2.创建Excel。 有两种方法创建一个Excel Workbook实例。 1.需要一个模板文件,使用Open方法,参数较多: 代码如下: object miss = Missing.Value; Application ...

    Aspose.Cells下拉框及导入导出

    Aspose.Cells下拉框及导入导出

    基于python实现复制文件并重命名

    已知的Excel模板格式、已知的文件命名规则(存储在Excel中),批量生成文件 代码如下 import shutil import xlrd # 打开存储文件命名规则的文件 data = xlrd.open_workbook('C:ccc\\新新编号.xls') # 打开工作表 ...

Global site tag (gtag.js) - Google Analytics