Apache POI用法

打印 上一主题 下一主题

主题 1550|帖子 1550|积分 4650

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、Apache POI是什么

Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操纵Excel文件。
二、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格式档案的功能
三、POI操纵Excel

3.1从Excel读取数据

  1. //通过遍历工作表获得行,遍历行获得单元格,最终获取单元格中的值。
  2. //创建工作簿
  3. XSSFWorkbook workbook = new XSSFWorkbook("D:\\hello.xlsx");
  4. //获取工作表,既可以根据工作表的顺序获取,也可以根据工作表的名称获取
  5. XSSFSheet sheet = workbook.getSheetAt(0);
  6. //遍历工作表获得行对象
  7. for (Row row : sheet) {
  8.   //遍历行对象获取单元格对象
  9.   for (Cell cell : row) {
  10.     //获得单元格中的值
  11.     String value = cell.getStringCellValue();
  12.     System.out.println(value);
  13.   }
  14. }
  15. workbook.close();
复制代码
POI操纵Excel表格封装了几个核心对象:
  1. XSSFWorkbook:工作簿
  2. XSSFSheet:工作表
  3. Row:行
  4. Cell:单元格
复制代码
3.2向Excel文件写入数据

使用POI可以在内存中创建一个Excel文件并将数据写入到这个文件,最后通过输出流将内存中的Excel文件下载到磁盘
  1. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  2. import org.apache.poi.xssf.usermodel.XSSFSheet;
  3. import org.apache.poi.xssf.usermodel.XSSFRow;
  4. import org.apache.poi.xssf.usermodel.XSSFCell;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. public class ExcelWriter {
  8.     public static void main(String[] args) {
  9.         // 创建一个新的XSSFWorkbook对象,代表整个Excel工作簿
  10.         XSSFWorkbook workbook = new XSSFWorkbook();
  11.         try {
  12.             // 创建一个新的工作表
  13.             XSSFSheet sheet = workbook.createSheet("Sheet1");
  14.             // 创建第一行
  15.             XSSFRow row = sheet.createRow(0);
  16.             // 创建第一行的第一个单元格,并设置值
  17.             XSSFCell cell = row.createCell(0);
  18.             cell.setCellValue("Hello, World!");
  19.             // 创建第二行
  20.             XSSFRow row2 = sheet.createRow(1);
  21.             // 创建第二行的第一个单元格,并设置值
  22.             XSSFCell cell2 = row2.createCell(0);
  23.             cell2.setCellValue("这是第二行");
  24.             // 将工作簿写入到文件中
  25.             try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
  26.                 workbook.write(outputStream);
  27.             }
  28.             System.out.println("Excel文件已成功创建并写入数据");
  29.         } catch (IOException e) {
  30.             e.printStackTrace();
  31.         } finally {
  32.             try {
  33.                 // 关闭workbook
  34.                 if (workbook != null) {
  35.                     workbook.close();
  36.                 }
  37.             } catch (IOException e) {
  38.                 e.printStackTrace();
  39.             }
  40.         }
  41.     }
  42. }
复制代码
四、POI操纵Word

4.1读取 Word 文件

Apache POI 也可以用于读取 Word 文件的内容。
  1. import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
  2. import org.apache.poi.xwpf.usermodel.XWPFDocument;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. public class WordReader {
  6.     public static void main(String[] args) {
  7.         try (FileInputStream fis = new FileInputStream("example.docx");
  8.              XWPFDocument document = new XWPFDocument(fis)) {
  9.             XWPFWordExtractor extractor = new XWPFWordExtractor(document);
  10.             String text = extractor.getText();
  11.             System.out.println(text);
  12.         } catch (IOException e) {
  13.             e.printStackTrace();
  14.         }
  15.     }
  16. }
复制代码
4.2写入 Word 文件

写入 Word 文件也可以通过 Apache POI 来实现。
  1. import org.apache.poi.xwpf.usermodel.*;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. public class WordWriter {
  5.     public static void main(String[] args) {
  6.         // 创建文档
  7.         XWPFDocument document = new XWPFDocument();
  8.         // 创建段落
  9.         XWPFParagraph paragraph = document.createParagraph();
  10.         XWPFRun run = paragraph.createRun();
  11.         run.setText("这是一个示例文档。");
  12.         // 写入文件
  13.         try (FileOutputStream fos = new FileOutputStream("output.docx")) {
  14.             document.write(fos);
  15.         } catch (IOException e) {
  16.             e.printStackTrace();
  17.         }
  18.     }
  19. }
复制代码
五、深入学习

假如想要深入学习 Apache POI,可以参考官方文档:https://poi.apache.org/

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

飞不高

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表