java_poi操作excel
### Java POI 操作 Excel 的知识点详解 #### 一、POI 介绍及结构说明 **1. Apache POI 简介** - **定义**:Apache POI 是一个由 Apache 软件基金会提供的开源项目,它提供了一组 API,使 Java 程序能够读写 Microsoft Office 格式的文件,包括 Excel、Word 和 PowerPoint 等。 - **应用范围**:主要应用于 Java 应用程序中处理 Office 文件的需求。 **2. POI 结构说明** - **HSSF**:提供了读写 Microsoft Excel XLS 格式文件的功能。 - **XSSF**:提供了读写 Microsoft Excel OOXML (XLSX) 格式文件的功能。 - **HWPF**:提供了读写 Microsoft Word DOC 格式文件的功能。 - **HSLF**:提供了读写 Microsoft PowerPoint 格式文件的功能。 - **HDGF**:提供了读写 Microsoft Visio 格式文件的功能。 - **HPBF**:提供了读写 Microsoft Publisher 格式文件的功能。 - **HSMF**:提供了读写 Microsoft Outlook 格式文件的功能。 **3. POI 常用类说明** | 类名 | 描述 | |---------------------|--------------------------------------------------------------| | HSSFWorkbook | 代表一个 Excel 文件(Workbook)。 | | HSSFSheet | 代表一个 Excel 工作表(Sheet)。 | | HSSFRow | 代表一个 Excel 行(Row)。 | | HSSFCell | 代表一个 Excel 单元格(Cell)。 | | HSSFFont | 用于设置单元格内的字体格式。 | | HSSFDataFormat | 用于设置单元格的日期格式。 | | HSSFHeader | 代表 Excel 文档的页眉。 | | HSSFFooter | 代表 Excel 文档的页脚。 | | HSSFCellStyle | 用于设置单元格的样式。 | | HSSFDateUtil | 提供了日期相关的工具方法。 | | HSSFPrintSetup | 用于设置打印选项。 | | HSSFErrorConstants | 包含错误常量,用于处理 Excel 文件中的错误信息。 | #### 二、Excel 的基本操作 **1. 创建 Workbook 和 Sheet** - **代码示例**: ```java public class Test00 { public static void main(String[] args) throws IOException { String filePath = "d://users//lizw//桌面//POI//sample.xls"; // 文件路径 HSSFWorkbook workbook = new HSSFWorkbook(); // 创建 Excel 文件 (Workbook) HSSFSheet sheet = workbook.createSheet(); // 创建工作表 (Sheet) sheet = workbook.createSheet("Test"); // 创建工作表 (Sheet),并指定名字 FileOutputStream out = new FileOutputStream(filePath); workbook.write(out); // 保存 Excel 文件 out.close(); // 关闭文件流 System.out.println("OK!"); } } ``` **2. 创建单元格** - **代码示例**: ```java HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表 (Sheet) HSSFRow row = sheet.createRow(0); // 创建行,索引从 0 开始 HSSFCell cell = row.createCell(0); // 创建行的单元格,索引从 0 开始 cell.setCellValue("李志伟"); // 设置单元格内容 row.createCell(1).setCellValue(false); // 设置单元格内容,重载 row.createCell(2).setCellValue(new Date()); // 设置单元格内容,重载 row.createCell(3).setCellValue(12.345); // 设置单元格内容,重载 ``` **3. 创建文档摘要信息** - **代码示例**: ```java workbook.createInformationProperties(); // 创建文档信息 DocumentSummaryInformation dsi = workbook.getDocumentSummaryInformation(); // 摘要信息 dsi.setCategory("类别:Excel文件"); // 类别 dsi.setManager("管理者:李志伟"); // 管理者 dsi.setCompany("公司:--"); // 公司 SummaryInformation si = workbook.getSummaryInformation(); // 摘要信息 si.setSubject("主题:--"); // 主题 si.setTitle("标题:测试文档"); // 标题 si.setAuthor("作者:李志伟"); // 作者 si.setComments("备注:POI测试文档"); // 备注 ``` **4. 创建批注** - **代码示例**(未完成): ```java HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表 (Sheet) HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); // 创建绘图对象 HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short) 4, 2, (short) 6, 5)); // 创建批注 comment.setString(new HSSFRichTextString("这是一个批注")); // 设置批注文本 comment.setVisible(true); // 设置批注是否可见 HSSFCell cell = row.createCell(0); // 创建单元格 cell.setCellComment(comment); // 设置单元格的批注 ``` **总结**:以上内容详细介绍了如何使用 Apache POI 在 Java 程序中创建和操作 Excel 文件。从创建 Excel 文件到设置单元格的内容,再到添加文档的摘要信息和批注,这些操作都是日常开发中非常实用且常见的功能。掌握这些基本操作对于进行 Excel 文件处理的开发来说至关重要。