Apache POI 3.5 Excel操作指南

需积分: 31 2 下载量 52 浏览量 更新于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文件的强大功能,满足各种复杂的需求。