- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ApachePOI组件的操作Excel制作报表
Apache POI组件操作Excel制作报表
原文来自/blog/845035,本文只为方便阅读,请支持原作者。
一、简单的文件读写操作
Apache的POI组件是Java操作Microsoft Office办公套件的强大API,其中对Word,Excel和PowperPoint都有支持,当然使用较多的还是Excel,因为Word和PowerPoint用程序动态操作的应用较少。那么本文就结合POI来介绍一下操作Excel的方法。
Office 2007的文件结构完全不同于2003,所以对于两个版本的Office组件,POI有不同的处理API,分开使用即可。首先来说几个Excel的基本概念。对于一个Excel文件,这称为一个工作簿(Workbook),打开Excel之后,在下方会有sheet1/2/3这样的选项卡,点击可以切换到不同的sheet中,这个sheet称作工作表。每个工作表就是我们编辑的区域,这是一张二维表,阿拉伯数字控制行数,从1开始,而程序中还是0,类似数组和集合。字母控制列数,从A开始,Z以后是两个字母控制。对于每一行,我们称为Row,列就是Column,行列可以确定唯一的一个元素,那么就是单元格,称为Cell。
POI组件可以方便的操纵这些元素,但初次接触POI可能会有畏惧心理,因为要对每个单元格进行设置,那么不管是用数组还是集合,从工作簿,工作表,行下来的代码量都不会小,这是不能避免的,但是按照这个处理顺序走,就一定可以得到结果。
有了这些基础的概念之后,我们就可以操作Excel了。先来看一下所需的依赖,因为涉及到2007,就要额外加一些依赖。
下面从读取Excel开始,首先建立一个Excel 2003以下版本的xls文件。设定几列来看。来存储学生信息的Excel表如下:
这里的姓名,性别和班级是文本值,而年龄和成绩是数字值,这在设计对象和处理时要注意区分。那么可以如下设计这个对象:package org.ourpioneer.excel.bean;
/**
* 学生信息
*/
public class Student {
private String name;
private String gender;
private int age;
private String sclass;
private int score; public Student() {
super();
}
public Student(String name, String gender, int age, String sclass, int score) {
super();
= name;
this.gender = gender;
this.age = age;
this.sclass = sclass;
this.score = score;
}
// 省略了getter和setter方法
@Override
public String toString() {
return "Student [age=" + age + ", gender=" + gender + ", name=" + name
+ ", sclass=" + sclass + ", score=" + score + "]";
}}
提供一个有参数的构造方法,用于生成对象写入Excel文档。这个对象就能刻画Excel文件中的数据了,下面就是写程序将Excel文件加载并处理,然后将内容读出,读取顺序是工作簿->工作表->行->单元格。这样一分析就很简单了。我们定义两个Excel文件,内容相同,只是版本不同,分2003和2007来处理。
创建工作簿时可以接收一个输入流对象,那么输入流对象可以从文件对象来生成,这样就可以继续进行了。取出工作表,取出行,遍历单元格,数据就拿到了。代码如下:
package org.ourpioneer.excel;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.
1亿VIP精品文档
相关文档
最近下载
- 工程伦理案例分析.docx VIP
- 年产50万吨甲醇制烯烃反应再生工段的初步设计.docx VIP
- 筹资业务核算教学设计.doc
- 货币政策的传导机制概述.ppt VIP
- 精品解析:2023年山东省临沂市兰陵县中考一模化学试题(解析版).docx VIP
- 2022儿童功能性消化不良中西医结合诊治专家共识(全文).pdf VIP
- 规范《DLT5099-2011-水工建筑物地下工程开挖施工技术规范》.pdf
- AIAG 产品质量先期策划 第三版 APQP (3rd edition)(原文件扫描).pdf
- 部编版小学道德与法治四年级下册《感谢他们的劳动》课件.pptx
- 2023年08月江苏省泗阳县第三批次面向高层次人才公开招聘68名教师0笔试参考题库附答案解析.pdf VIP
文档评论(0)