Apache POI 3.5 HSSF与XSSF Excel操作指南

需积分: 31 1 下载量 155 浏览量 更新于2024-07-29 收藏 1.36MB PDF 举报
"POI3.5_HSSF_和XSSF_Excel操作快速入门手册" Apache POI 是一个流行的Java库,用于读取、写入和修改Microsoft Office格式的文件,尤其是Excel工作簿。HSSF是POI项目的一部分,专门用于处理老版的Excel文件格式(.xls),而XSSF则用于处理较新的XML-based Excel 2007格式(.xlsx)。本教程是针对POI 3.5版本的快速入门指南,旨在帮助开发者迅速掌握如何使用HSSF和XSSF进行Excel操作。 1. 添加POI支持 在项目中引入Apache POI库后,需要导入相应的包以使用HSSF和XSSF。通常,这包括`org.apache.poi.hssf.usermodel`和`org.apache.poi.xssf.usermodel`包。 2. 创建新工作簿 创建一个新的Excel工作簿可以使用`HSSFWorkbook`或`XSSFWorkbook`类。对于HSSF,使用`new HSSFWorkbook()`;对于XSSF,使用`new XSSFWorkbook()`。 3. 创建新sheet页 工作簿对象提供了创建新sheet的方法,如`HSSFWorkbook.createSheet(String sheetName)`和`XSSFWorkbook.createSheet(String sheetName)`。 4. 创建单元格 使用`Row.createCell(int index)`创建单元格,然后设置其值,如`cell.setCellValue(String value)`或`cell.setCellValue(double value)`。 5. 新建一个时间格式的单元格 创建日期单元格需要使用`CreationHelper`,通过`createDataFormat()`获取数据格式器,并设置单元格的数据类型为日期。 6. 处理不同内容格式的单元格 单元格有不同的数据类型,如字符串、数字、日期等,可以通过`CellType`枚举来设置和获取。 7. 遍历列和单元格 使用`Sheet.iterator()`遍历sheet,然后使用`Row.iterator()`遍历每一行,再用`Row.getCell(int index)`获取每个单元格。 8. 获得单元格内的内容 使用`Cell.getStringCellValue()`、`Cell.getNumericCellValue()`等方法获取单元格的值。 9. 文本提取 对于长文本,可能需要使用`Cell.getRichStringCellValue()`,它支持富文本格式。 10. 处理单元格边框 使用`CellStyle`对象设置单元格的边框,如`setBorderTop(BorderStyle.THIN)`,并指定颜色。 11. 填充色和颜色操作 通过`CellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND)`设置填充模式,用`setFillForegroundColor(IndexedColors.COLOR)`设置颜色。 12. 合并单元格 使用`Sheet.addMergedRegion(CellRangeAddress region)`合并单元格。 13. 字体的处理 `Font`对象允许设置字体样式,如`setFontName(String fontName)`、`setBold(boolean bold)`、`setFontColor(IndexedColors color)`。 14. 自定义颜色 通过`ExtendedColor`对象可以创建自定义颜色。 15. 读取和重写工作簿 使用`FileInputStream`打开现有工作簿,`WorkbookFactory.create(InputStream)`创建Workbook对象,完成修改后,使用`Workbook.write(OutputStream)`保存到输出流。 16. 在单元格中使用换行 使用`RichTextString`对象的`append(String str, boolean newLine)`方法插入换行。 17. 创建用户自定义数据格式 `Workbook.createDataFormat().getFormat(String format)`创建自定义数据格式。 18. Sheet页自适应页面大小 `Sheet.fitToPage()`可使内容适应打印页面大小。 19. 设定打印区域 使用`Sheet.setPrintArea(int startColumn, int endColumn, int startRow, int endRow)`定义打印范围。 20. 设置脚注页码 `Sheet.setFooter(String text, HeaderFooter.Font footerFont, int alignment)`在页脚中添加页码。 21. 使用便捷函数 POI提供了一些便捷方法,如`Row.createCellAndSetString(int index, String value)`,简化单元格创建和赋值。 22. 上下移动一行 `Row.moveRow(int oldRowNum, int newRowNum)`可以移动行。 23. 将sheet页设定为默认选中 `Sheet.setSelected(boolean selected)`设置sheet是否默认选中。 24. 设置sheet页放大倍率 `Sheet.setZoom(int numerator, int denominator)`调整显示比例。 25. 拆分和冻结窗格 `Sheet.createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow)`可以创建冻结窗口。 26. 重复列和行 `Sheet-repeatRows(int firstRow, int lastRow)`和`Sheet-repeatColumns(int firstCol, int lastCol)`实现列和行的重复。 27. 页眉和页脚 使用`Header`和`Footer`对象可以设置页眉和页脚的内容和样式。 28. 绘制图形 通过`Drawing`对象,可以创建形状,如`Drawing.createShape(ShapeType shapeType, ClientAnchor anchor)`,并设置其属性。 29. 设置图形样式 图形样式包括填充颜色、线条样式等,可通过`Shape`对象的相关方法设置。 以上是Apache POI 3.5版本中HSSF和XSSF进行Excel操作的基本知识点,这些内容将帮助开发者快速上手Excel文件的处理。