`

JAVA操作Excel,读取Excel模板动态写入数据并生成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。

分享到:
评论
2 楼 wsdsgfuqiang 2011-05-03  
cqh520llr 写道
动态模板


怎么给模板加完整的一行
1 楼 cqh520llr 2010-06-30  
jb,动态模板懂吗?

相关推荐

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

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

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

    这个过程涉及到对Excel模板的理解、读取、修改以及最终的保存。 首先,理解模板文件是关键。一个.xlsx模板文件实际上是由一系列XML文件组成,存储在ZIP压缩包内,这也就是.xslx文件的本质。模板中的单元格、公式、...

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

    在Java编程环境中,生成Excel报表是一项常见的任务,特别是在数据分析、数据导出或报表制作的场景中。本示例关注的是如何使用Java根据模板格式来创建适用于打印的专业Excel报表。这通常涉及到对Apache POI库的使用,...

    poi包 EXCEL模板读取填数据并导出以及在模板某行插入新的行

    标题中的“poi包 EXCEL模板读取填数据并导出以及在模板某行插入新的行”涉及到了Apache POI库的使用,这是一个Java API,专门用于处理Microsoft Office格式的文件,如Excel。以下是对这个主题的详细解释: Apache ...

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

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

    jxl 读取Excel模板并写入数据通用工具类

    本文将详细讨论如何使用JXL库创建一个通用的工具类来读取Excel模板并填充数据。 首先,我们需要了解JXL库的基本用法。JXL库提供了多种API,可以用来操作Excel文件的各个部分,包括工作簿(Workbook)、工作表...

    Java数据导出到Excel模板

    在Java应用中,我们可以预先创建一个Excel模板,然后填充动态数据,这样既保证了输出格式的一致性,又节省了开发时间。 3. **数据导出流程**: - **创建Workbook对象**:这是Excel文件的容器,可以包含多个Sheet。...

    java复杂模板excel导出例子

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

    Excel导出数据(根据Excel模板定义)

    "Excel导出数据(根据Excel模板定义)"这个主题涉及到的核心技术是如何根据预设的Excel模板生成和导出数据,通常用于批量生成报表或者进行复杂的数据呈现。下面将详细解释这一过程及其相关知识点。 1. **Excel模板...

    java根据excel生成 hive建表语句

    总的来说,通过Java结合Apache POI库,我们可以方便地读取Excel文件,并根据其内容生成Hive的建表语句。这在数据迁移、数据分析以及数据仓库初始化等场景中非常实用。在实际应用中,可能还需要考虑数据清洗、异常...

    使用POI向Excel模板动态添加内容

    在IT行业中,Apache POI是一个广泛使用的库,它允许开发者在Java环境中创建、修改和读取Microsoft Office格式的文件,尤其是Excel文档。本教程将详细讲解如何利用Apache POI库来实现“使用POI向Excel模板动态添加...

    EXCEL图形模板For Java

    使用Apache POI库读取并操作模板文件。首先,加载模板文件,然后找到需要填充数据的单元格,使用POI提供的API(如`Cell`和`Row`对象)将数据写入到对应单元格。由于我们已经在模板中定义了名称,当数据写入这些...

    生成下拉列表excel模板.rar

    在IT行业中,生成下拉列表Excel模板是一种常见的需求,特别是在数据报告、数据分析或者用户输入验证的场景中。Java作为广泛使用的后端编程语言,通过Apache POI库可以方便地操作Excel文档,实现从数据库中查询数据并...

    从Excel中读取数据导入到数据库中

    在实际操作中,Python的pandas库是一个强大的工具,可以方便地读取Excel文件(`pd.read_excel()`)和连接到数据库(如`sqlalchemy`库)。使用pandas,我们可以方便地处理数据清洗、转换和导入的全过程。例如,读取...

    java导出30万数据量的excel(采用生成多个excel,最后打包zip)

    在这个项目中,我们可能使用Apache POI来创建、写入和读取Excel文件。 2. **大数据量处理策略**: 一次性处理30万条数据可能导致内存溢出,因此采用分块处理。将数据分为多个小块,每块生成一个Excel文件,这样可以...

    Java操作Excel之Poi模板导入导出

    在"Java操作Excel之Poi模板导入导出"这个主题中,我们将深入探讨如何使用POI库来处理Excel模板,并进行数据的导入和导出。 首先,了解Excel模板的基本概念。模板通常包含预定义的样式、格式和计算,开发人员可以...

    excel模板读写

    1. **读取Excel模板** - **打开模板文件**:使用`WorkbookFactory.create()`方法,传入模板文件的路径,可以创建一个Workbook对象,它是Excel文件的抽象表示。 - **获取Sheet对象**:Workbook对象包含了多个Sheet...

    java使用 POI Excel模板导出数据

    这篇博客"java使用POI Excel模板导出数据"探讨了如何利用POI库在Java中创建Excel模板并填充数据。下面将详细介绍这个过程以及相关知识点。 首先,我们需要理解Apache POI的基本概念。POI是Apache软件基金会的一个...

    java 处理Excel 带 List

    此外,Apache POI还支持模板导出Excel,即预先定义好Excel模板,然后填充数据,这种方式在生成复杂报表时非常有用。 在实际项目中,可能还需要考虑性能问题,因为处理大量数据时,内存消耗可能会很大。为了解决这个...

    kettle 使用excel模板导出数据

    在这个场景中,我们将创建一个特定的Transform,用于从数据库或其他数据源读取数据,并使用预定义的Excel模板进行导出。 1. **创建Excel Writer Transform**:在Kettle中,我们使用"Excel Writer"步骤来实现这个...

Global site tag (gtag.js) - Google Analytics