Apache POI 3.5 HSSF & XSSF Excel操作指南

需积分: 31 0 下载量 26 浏览量 更新于2024-07-25 收藏 1.36MB PDF 举报
"POI3.5_HSSF_和XSSF_Excel操作快速入门手册" Apache POI 是一个开源项目,允许Java开发者读写Microsoft Office格式的文件,包括Excel。在这个快速入门手册中,我们将深入理解如何使用POI 3.5版本的HSSF和XSSF库来操作Excel文件。 HSSF是POI项目中的一个组件,主要用于处理老版的Microsoft Excel文件格式,即.BIFF8格式。而XSSF则用于处理较新的OOXML (.xlsx) 文件格式。两者都是API,提供了一系列的方法来创建、修改和读取Excel工作簿、工作表、单元格等元素。 添加POI支持 首先,要在项目中使用POI,你需要添加对应的依赖库。对于POI 3.5,你需要包含HSSF和XSSF相关的JAR文件,通常这些文件可以在Apache POI的发布页面下载。 创建新工作簿 创建一个Excel工作簿对象可以使用`WorkbookFactory.create()`方法,传入`FileInputStream`或`OutputStream`来创建一个新的HSSFWorkbook(.xls)或XSSFWorkbook(.xlsx)对象。 ```java Workbook workbook = WorkbookFactory.create(new File("workbook.xls")); // HSSFWorkbook for .xls Workbook workbook = WorkbookFactory.create(new File("workbook.xlsx")); // XSSFWorkbook for .xlsx ``` 创建新sheet页 在工作簿中添加新的工作表,可以调用`Workbook`对象的`createSheet()`方法。 ```java Sheet sheet = workbook.createSheet("Sheet1"); ``` 创建单元格 在工作表中创建单元格,使用`Row`对象的`createCell()`方法。 ```java Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello, World!"); ``` 新建一个时间格式的单元格 创建包含日期或时间的单元格,需要设置适当的单元格类型,并使用`CellStyle`来应用日期格式。 ```java cell.setCellType(CellType.NUMERIC); CellStyle style = workbook.createCellStyle(); style.setDataFormat(workbook.createDataFormat().getFormat("m/d/yy h:mm")); cell.setCellStyle(style); cell.setCellValue(new Date()); ``` 处理不同内容格式的单元格 POI提供了多种单元格类型,如`CELL_TYPE_NUMERIC`(数字)、`CELL_TYPE_STRING`(字符串)、`CELL_TYPE_BOOLEAN`(布尔值)和`CELL_TYPE_FORMULA`(公式)等,根据需要设置。 遍历列和单元格 通过迭代`Sheet`的行和列,可以访问和修改所有单元格。 ```java for (Row row : sheet) { for (Cell cell : row) { // 处理每个单元格 } } ``` 获得单元格内的内容 获取单元格内容,根据单元格类型使用不同的方法,如`cell.getStringCellValue()`、`cell.getNumericCellValue()`等。 文本提取 对于文本单元格,可以使用`cell.getStringCellValue()`获取内容,对于其他类型的单元格,可能需要转换。 处理单元格边框 使用`CellStyle`可以设置单元格的边框,如`setBorderTop()`, `setBorderBottom()`, `setBorderLeft()`, 和`setBorderRight()`。 填充色和颜色操作 设置单元格背景色,可以通过`CellStyle`的`setFillForegroundColor()`和`setFillPattern()`方法。 合并单元格 使用`Sheet`的`mergeCells()`方法可以合并单元格。 字体的处理 `Font`对象用于控制单元格内文本的字体样式,包括大小、颜色、加粗等。 自定义颜色 创建自定义颜色,需要使用`IndexedColors`枚举或自定义的RGB值。 读取和重写工作簿 读取现有工作簿,使用`WorkbookFactory.create()`方法传入`FileInputStream`。完成修改后,使用`Workbook`的`write()`方法写入`FileOutputStream`。 在单元格中使用换行 可以使用`RichTextString`对象插入换行符`\n`。 创建用户自定义数据格式 通过`DataFormat`创建自定义的数字格式字符串。 Sheet页自适应页面大小 设置`Sheet`的自动调整列宽`autoSizeColumn()`。 设定打印区域 使用`Sheet`的`setPrintArea()`方法定义打印区域。 设置脚注页码 在工作表中添加脚注和设置页码,需要使用`Sheet`的`createFooter()`和`createHeader()`。 使用便捷函数 POI提供了一些便捷的函数,例如`CellUtil`和`RowUtil`,简化了对单元格和行的操作。 上下移动一行 使用`Row`的`moveToInsertionPoint()`方法可以移动行。 将sheet页设定为默认选中 使用`Sheet`的`setSelected(true)`方法使其成为默认选中状态。 设置sheet页放大倍率 通过`Sheet`的`setZoom()`方法设置显示比例。 拆分和冻结窗格 使用`Sheet`的`createFreezePane()`和`createSplitPane()`方法来创建固定或拆分视图。 重复列和行 在打印时,可以使用`Sheet`的`setRepeatingRows()`和`setRepeatingColumns()`设置重复的行和列。 页眉和页脚 创建页眉和页脚,使用`Header`和`Footer`对象。 绘制图形 使用`Drawing`接口可以创建图形对象,如直线、矩形、椭圆等。 设置图形样式 图形样式包括线条、填充、字体等,通过`Shape`对象的属性来设置。 以上内容是POI 3.5中HSSF和XSSF操作Excel的基本知识,通过这些功能,开发者可以实现对Excel文件的全面控制,创建复杂的报告、数据分析和自动化任务。