### POI Excel用法小结 #### 一、概述 Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式的文件,包括 Excel (`.xls` 和 `.xlsx`) 文件。POI 提供了多种 API 来操作 Excel 文件,如 HSSF (用于 `.xls` 文件) 和 XSSF (用于 `.xlsx` 文件)。本文将详细介绍如何使用 POI 的 HSSF API 来创建和操作 Excel 文件,并特别关注单元格的格式设置。 #### 二、准备工作 在开始编写代码之前,确保已经正确安装并配置了 Apache POI 库。可以使用 Maven 或 Gradle 进行依赖管理: ```xml <!-- Maven --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.2</version> </dependency> ``` #### 三、创建 Excel 文件 **1. 创建工作簿 (Workbook)** ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import java.io.FileOutputStream; HSSFWorkbook wb = new HSSFWorkbook(); FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close(); ``` - **解释**:这段代码首先创建了一个 `HSSFWorkbook` 对象,它是整个 Excel 文档的根。然后通过 `FileOutputStream` 将数据写入到文件中。 **2. 创建工作表 (Sheet)** ```java HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet1 = wb.createSheet("newsheet"); HSSFSheet sheet2 = wb.createSheet("secondsheet"); FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close(); ``` - **解释**:通过调用 `createSheet` 方法创建一个新的工作表,并传入工作表的名字。 **3. 创建单元格 (Cell)** ```java HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("newsheet"); // 创建一行并插入单元格 HSSFRow row = sheet.createRow((short)0); // 创建单元格并赋值 HSSFCell cell = row.createCell((short)0); cell.setCellValue(1); // 或者一行完成 row.createCell((short)1).setCellValue(1.2); row.createCell((short)2).setCellValue("This is a string"); row.createCell((short)3).setCellValue(true); ``` - **解释**:`createRow` 方法创建一行,`createCell` 方法创建单元格,并通过 `setCellValue` 方法为单元格赋值。 **4. 创建指定格式的单元格** ```java HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("newsheet"); // 创建一行并插入单元格 HSSFRow row = sheet.createRow((short)0); // 创建日期格式的单元格 HSSFCell cell = row.createCell((short)0); cell.setCellValue(new Date()); // 设置第二个单元格为日期格式 HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm")); cell = row.createCell((short)1); cell.setCellValue(new Date()); cell.setCellStyle(cellStyle); ``` - **解释**:使用 `setDataFormat` 方法可以设置单元格的格式,这里设置了日期时间格式。 #### 四、单元格的不同格式 - **数值格式**:通过 `HSSFDataFormat` 类可以设置数值格式。 - **文本格式**:默认情况下,字符串类型的数据会以文本形式显示。 - **日期格式**:上例中已经展示了如何设置日期格式。 - **布尔格式**:布尔类型的值也会自动转换成相应的显示形式。 #### 五、自定义单元格背景颜色 ```java import org.apache.poi.hssf.usermodel.HSSFPalette; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFWorkbook; HSSFWorkbook wb = new HSSFWorkbook(); HSSFPalette palette = wb.getCustomPalette(); palette.setColorAtIndex((short)15, (byte)153, (byte)204, (byte)255); HSSFCellStyle style = wb.createCellStyle(); style.setFillForegroundColor(palette.findColor((byte)153, (byte)204, (byte)255).getIndex()); style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); ``` - **解释**:首先获取工作簿的自定义调色板,然后设置或查找特定的颜色索引,最后将该颜色应用到样式中。 #### 六、总结 本文详细介绍了如何使用 POI 的 HSSF API 来创建和操作 Excel 文件。通过实例代码演示了创建 Excel 工作簿、工作表、单元格以及设置单元格格式的方法。同时,也展示了如何设置单元格的背景颜色。这些基本功能为后续更复杂的数据操作奠定了基础。
剩余10页未读,继续阅读
- 粉丝: 0
- 资源: 17
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助