Apache POI 3.5 HSSF & XSSF Excel操作指南

需积分: 50 10 下载量 29 浏览量 更新于2024-07-25 收藏 1.36MB PDF 举报
"这是一份关于使用Apache POI 3.5版进行HSSF和XSSF Excel操作的快速入门手册,由岑坚(高凯)翻译,主要涵盖了创建和操作Excel工作簿、工作表、单元格、格式、字体、颜色、边框、合并、打印设置等内容。" Apache POI是Java库,用于读写Microsoft Office格式的文件,尤其是Excel。HSSF(Horizontally Stored Sheets Format)是POI用于处理旧版BIFF格式(.xls)Excel文件的组件,而XSSF(XML Spreadsheet Format)则用于处理基于XML的新版Excel 2007及以上版本(.xlsx)文件。 1. 添加POI支持:首先,你需要在项目中引入Apache POI的库,通常通过Maven或Gradle依赖管理工具进行配置。 2. 创建新工作簿:使用`WorkbookFactory.create()`方法可以创建一个新的工作簿对象,如`HSSFWorkbook`(对应HSSF)或`XSSFWorkbook`(对应XSSF)。 3. 创建新sheet页:在工作簿对象上调用`createSheet()`方法可创建新的sheet页。 4. 创建单元格:在sheet页上使用`createRow()`创建行,然后在行对象上使用`createCell()`创建单元格。 5. 新建一个时间格式的单元格:可以使用`CellStyle`对象设置单元格的数据类型为`DataFormat.TIME_FORMAT`,并赋值一个`java.util.Date`对象。 6. 处理不同内容格式的单元格:POI提供了多种单元格类型,如`CELL_TYPE_NUMERIC`、`CELL_TYPE_STRING`等,可以根据需要设置。 7. 遍历列和单元格:通过循环遍历行和单元格,可以访问和修改每个单元格的内容。 8. 获得单元格内的内容:使用`getCellType()`获取单元格类型,然后根据类型使用`getNumericCellValue()`、`getStringCellValue()`等方法读取值。 9. 文本提取:对于长文本,可能需要处理单元格的自动换行和截断。 10. 处理单元格边框:使用`CellStyle`对象设置单元格的边框样式、宽度和颜色。 11. 填充色和颜色操作:同样通过`CellStyle`,可以设置单元格的背景填充色和字体颜色。 12. 合并单元格:使用`Sheet`对象的`mergeCells()`方法可以合并多个单元格。 13. 字体的处理:包括设置字体、字号、颜色、加粗、斜体等属性。 14. 自定义颜色:POI允许创建自定义的颜色索引,并应用于单元格样式。 15. 读取和重写工作簿:`WorkbookFactory`类提供了`create()`方法从文件加载工作簿,完成修改后使用`write()`方法写回文件。 16. 在单元格中使用换行:可以设置单元格样式允许换行,并在字符串中使用`\n`来插入换行符。 17. 创建用户自定义数据格式:可以创建自定义的数据格式,如货币、百分比等,然后应用到单元格。 18. Sheet页自适应页面大小:通过调整页边距和设置自动调整列宽、行高,可以使得内容适应页面大小。 19. 设定打印区域:使用`Sheet`对象的`setPrintArea()`方法定义打印范围。 20. 设置脚注页码:可以为sheet页添加脚注并设置页码。 21. 使用便捷函数:POI提供了一些便利的方法,如设置行高、列宽等。 22. 上下移动一行:可以使用`shiftRows()`方法移动行。 23. 将sheet页设定为默认选中:通过设置`activeIndex`属性,可以指定打开文件时默认显示的sheet页。 24. 设置sheet页放大倍率:在打印预览中,可以设置缩放比例。 25. 拆分和冻结窗格:使用`createFreezePane()`或`createSplitPane()`方法可以实现窗口拆分和冻结。 26. 重复列和行:在打印时,可以设置某些列或行在每一页都重复显示。 27. 页眉和页脚:页眉和页脚可以通过`Header`和`Footer`对象进行设置,包括页码、日期、自定义文本等。 28. 绘制图形:可以创建形状对象,如矩形、线段、文本框等,并添加到sheet中。 29. 设置图形样式:图形的样式,如线条、填充、旋转等,可以通过`Shape`对象的属性进行设置。 这个快速入门手册提供了POI操作Excel的基础知识,帮助开发者快速上手Excel文件的读写任务。