Apache POI 3.5:HSSF与XSSFExcel操作教程

需积分: 31 10 下载量 189 浏览量 更新于2024-09-19 2 收藏 1.36MB PDF 举报
"POI3.5_HSSF_和XSSF_Excel操作快速入门手册.pdf" Apache POI 是一个流行的开源库,允许Java开发者读写Microsoft Office格式的文件,特别是Excel。此手册专注于3.5版本的HSSF和XSSF组件,它们分别用于处理老版的BIFF8格式(.xls)和OOXML格式(.xlsx)的Excel文件。 1. 添加POI支持 在Java项目中使用POI,首先需要添加对应的依赖库。对于Maven项目,可以在pom.xml文件中添加Apache POI的相关依赖。 2. 创建新工作簿 使用`WorkbookFactory.create()`方法可以创建一个新的工作簿对象,根据文件格式选择HSSFWorkbook(HSSF)或XSSFWorkbook(XSSF)。 3. 创建新sheet页 工作簿对象提供了`createSheet()`方法来创建新的sheet页,每个sheet页代表Excel文件中的一个工作表。 4. 创建单元格 Sheet对象提供`createRow()`创建行,然后使用`Row.createCell()`方法在指定行上创建单元格。单元格可设置为数值、字符串、日期等类型。 5. 新建一个时间格式的单元格 为单元格设置日期值,可以使用`Cell.setCellValue(Date date)`,并确保使用正确的数据格式。 6. 处理不同内容格式的单元格 POI提供了多种方法来设置单元格的样式,如数字格式、日期格式、布尔值显示等。 7. 遍历列和单元格 可以通过迭代行和单元格来访问和修改工作表的所有数据。例如,`for (Row row : sheet)` 和 `for (Cell cell : row)`。 8. 获得单元格内的内容 使用`Cell.getStringCellValue()`、`Cell.getNumericCellValue()`等方法获取单元格的值。 9. 文本提取 对于长文本,可能需要使用`RichTextString`来处理富文本格式,包括字体、颜色等。 10. 处理单元格边框 `CellStyle`对象提供了设置边框的方法,如`setBorderTop()`, `setBorderBottom()`, `setBorderLeft()`, `setBorderRight()`,以及设置边框线型和颜色。 11. 填充色和颜色操作 使用`CellStyle.setFillForegroundColor(IndexedColors color)`设置单元格背景色,`CellStyle.setFillPattern(FillPatternType pattern)`设置填充模式。 12. 合并单元格 要合并单元格,使用`Sheet.addMergedRegion(CellRangeAddress region)`,指定要合并的单元格范围。 13. 字体的处理 通过`Font`对象可以设置字体样式,如`setFontName()`, `setBold()`, `setItalic()`等。 14. 自定义颜色 自定义颜色可以通过`ExtendedColor`类实现,然后应用到单元格样式中。 15. 读取和重写工作簿 读取现有工作簿使用`WorkbookFactory.loadWorkbook()`,完成后使用`workbook.write(outputStream)`保存到输出流。 16. 在单元格中使用换行 对于多行文本,使用`RichTextString`的`append(String str, boolean useNewLine)`方法插入换行。 17. 创建用户自定义数据格式 通过`Workbook.createDataFormat().getFormat(formatString)`创建自定义数据格式,然后应用于单元格样式。 18. Sheet页自适应页面大小 `Sheet.printFitHeight(int rows, int sheet)`和`Sheet.printFitWidth(int columns, int sheet)`可调整页面以适应内容。 19. 设定打印区域 使用`PrintSetup`对象的`setPrintArea()`方法设定打印区域。 20. 设置脚注页码 `Sheet.createComment()`创建脚注,`Comment.setRow()`和`Comment.setColumn()`设置位置,`Comment.setAuthor()`设置作者。 21. 使用便捷函数 POI提供了许多便捷方法,如`Sheet.autoSizeColumn(int columnIndex)`自动调整列宽。 22. 上下移动一行 `Row.shiftRows(int firstRowNum, int lastRowNum, int n)`方法可以移动指定行。 23. 将sheet页设定为默认选中 `Sheet.setSelected(boolean selected)`设置当前sheet是否选中。 24. 设置sheet页放大倍率 `Sheet.setZoom(int horizontalZoom, int verticalZoom)`设定打印时的缩放比例。 25. 拆分和冻结窗格 使用`Sheet.createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow)`进行窗口拆分和冻结。 26. 重复列和行 `Sheet.setRepeatingRows()`和`Sheet.setRepeatingColumns()`用于设置打印时重复的行或列。 27. 页眉和页脚 `Header`和`Footer`对象提供了设置页眉和页脚的方法,如`Header.Center`、`Footer.Left`等。 28. 绘制图形 使用`Drawing`接口创建图形对象,然后可以添加形状、线条、图片等,并设置其属性。 29. 设置图形样式 图形对象有多种样式属性可供设置,如填充、边框、旋转角度等。 以上就是Apache POI 3.5版本中HSSF和XSSF组件的基本操作,涵盖了从创建工作簿到复杂的格式和图形处理,是开发Java Excel操作应用程序的重要参考资料。