Apache POI 3.5 Excel操作指南
需积分: 31 182 浏览量
更新于2024-09-21
收藏 1.36MB PDF 举报
"POI3.5 HSSF与XSSF Excel操作快速入门手册"
Apache POI 是一个开源项目,主要用于读写Microsoft Office格式的文件,尤其是Excel。本手册针对的是POI 3.5版本,主要讲解如何使用HSSF和XSSF两个API来操作Excel。
1. 添加POI支持
要使用POI库,首先需要在项目中引入相应的JAR文件,这些文件包含了处理Excel所需的所有类和方法。然后通过导入必要的包,如`org.apache.poi.hssf.usermodel`和`org.apache.poi.xssf.usermodel`,可以开始进行Excel的操作。
2. 创建新工作簿
创建一个新的Excel工作簿,可以使用`HSSFWorkbook`(用于旧版的.BIFF8格式,即97-2003版本的Excel)或`XSSFWorkbook`(用于.xlsx格式,2007及以上版本)。例如:
```java
HSSFWorkbook workbook = new HSSFWorkbook();
XSSFWorkbook workbook = new XSSFWorkbook();
```
3. 创建新sheet页
在工作簿中添加新的sheet页,可以通过调用`workbook.createSheet()`方法完成,返回值是Sheet对象,代表一个Excel的工作表。
```java
Sheet sheet = workbook.createSheet("Sheet1");
```
4. 创建单元格
在Sheet中创建单元格,使用`Row.createCell()`方法,指定单元格类型(如STRING, NUMERIC, BOOLEAN等)。
```java
Row row = sheet.createRow(0);
Cell cell = row.createCell(0, CellType.STRING);
cell.setCellValue("Hello, POI!");
```
5. 新建一个时间格式的单元格
对于日期和时间,需要将单元格类型设置为NUMERIC,并使用`DateUtil.isCellDateFormatted(cell)`检查是否为日期格式。
```java
cell.setCellType(CellType.NUMERIC);
cell.setCellValue(new Date());
```
6. 处理不同内容格式的单元格
POI提供了多种单元格格式,如数字、字符串、布尔值等,可以使用`CellStyle`对象来设置单元格的样式。
7. 遍历列和单元格
可以通过迭代Sheet中的行和行中的单元格来访问所有数据。
```java
for (Row r : sheet) {
for (Cell c : r) {
// 处理单元格内容
}
}
```
8. 获取单元格内的内容
`cell.getStringCellValue()`获取字符串,`cell.getNumericCellValue()`获取数字,`cell.getBooleanCellValue()`获取布尔值。
9. 文本提取
对于长文本,可能需要使用`DataFormatter`类来正确格式化和提取内容。
10. 单元格边框
可以使用`CellStyle`对象设置单元格的边框样式,包括边框颜色、宽度等。
11. 填充色和颜色操作
同样通过`CellStyle`,可以设置单元格的背景色,使用`FillPatternType`和`Color`。
12. 合并单元格
使用`Sheet.mergeCells(startRow, startCol, endRow, endCol)`合并多个单元格。
13. 字体的处理
`Font`对象允许设置字体样式,如大小、颜色、斜体、加粗等。
14. 自定义颜色
POI允许创建自定义颜色,通过`IndexedColors`枚举或自定义`Color`对象。
15. 读取和重写工作簿
读取现有工作簿使用`WorkbookFactory.create(InputStream)`,完成后通过`workbook.write(OutputStream)`保存到输出流。
16. 在单元格中使用换行
使用`CellStyle.wrapText(true)`启用自动换行。
17. 创建用户自定义数据格式
创建自定义的数字格式,通过`CellStyle.setDataFormat(DataFormat.createFormat(formatString))`。
18. Sheet页自适应页面大小
使用`Sheet.fitToPage()`使内容适应页面大小。
19. 设定打印区域
通过`Sheet.setPrintArea()`设置打印范围。
20. 设置脚注页码
可以添加脚注并设置页码,使用`Row.createCell()`创建脚注单元格。
21. 上下移动一行
通过`Row.moveRow(int currentRowNum, int targetRowNum)`移动行。
22. 将sheet页设定为默认选中
`Sheet.setSelected(true)`设置默认选中。
23. 设置sheet页放大倍率
使用`Sheet.setZoom(int numerator, int denominator)`设置放大比例。
24. 拆分和冻结窗格
`Sheet.createFreezePane()`和`Sheet.createSplitPane()`实现窗口拆分和冻结。
25. 重复列和行
`Sheet.setRepeatingRows()`和`Sheet.setRepeatingColumns()`用于设置重复的行和列。
26. 页眉和页脚
通过`Header`和`Footer`对象设置页眉和页脚的内容。
27. 绘制图形
使用`Drawing`接口创建图形对象,设置位置、大小和样式。
28. 设置图形样式
通过`ClientAnchor`和`Picture`对象定制图形样式。
以上是POI 3.5中HSSF和XSSF操作Excel的基本知识点,这些API提供了创建、读取、修改Excel文件的强大功能,满足各种复杂的需求。
2008-10-23 上传
239 浏览量
2013-08-18 上传
2013-05-31 上传
2020-11-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
yc49957299
- 粉丝: 1
- 资源: 32
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析