开发者

Apache POI用法示例详解

目录
  • 一、Apache POI是什么
  • 二、POI结构
  • 三、POI操作Excel
    • 3.1从Excel读取数据
    • 3.2向Excel文件写入数据
  • 四、POI操作Word
    • 4.1读取 Word 文件
    • 4.2写入 Word 文件
  • 五、深入学习

    一、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读取数据

    //通过遍历工作表获得行,遍历行获得单元格,最终获取单元格中的值。
    //创建工作簿
    XSSFWorkbook workbook = new XSSFWorkbook("D:\\hello.xlsx");
    //获取工作表,既可以根据工作表的顺序获取,也可以根据工作表的名称获取
    XSSFSheet sheet = workbook.getSheetAt(0);
    //遍历工作表获得行对象
    for (Row row : sheet) {
      //遍历行对象获取单元格对象
      for (Cell cell : row) {
        //获得单元格中的值
        String value = cell.getStringCellValue();
        System.out.println(value);
      }
    }
    workbook.close();

    POI操作Excel表格封装了几个核心对象:

    XSSFWorkbook:工作簿
    XSSFSheet:工作表
    Row:行
    Cell:单元格

    3.2向Excel文件写入数据

    使用POI可以在内存中创建一个Excel文件并将数据写入到这个文件,最后通过输出流将内存中的Excel文件下载到磁盘

    import org.apache.poi.xssf.usermodel.XSSFWorkbojsok;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import java.io.FileOutputStream;
    import java.io.IOException;
    public class ExcelWriter {
        public static void main(String[] args) {
            // 创建一个新的XSSFwww.devze.comWorkbook对象,代表整个编程客栈Excel工作簿
            XSSFWorkbook workbook = new XSSFWorkbook();
            try {
                // 创建一个新的工作表
                XSSFSheet sheet = workbook.createSheet("Sheet1");
                // 创建第一行
                XSSFRow row = sheet.createRow(0);
                // 创建第一行的第一个单元格,并设置值
                XSSFCell cell = row.createCell(0);
                cell.setCellValue("Hello, World!");
                // 创建第二行
                XSSFRow row2 = sheet.createRow(1);
                // 创建第二行的第一个单元格,并设置值
                XSSFCell cell2 = row2.createCell(0);
                cell2.setCellValue("这是第二行");
                // 将工作簿写入到文件中
                try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
                    workbook.write(outputStream);
                }
                System.out.println("Excel文件已成功创建并写入数据");
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    // 关闭workbook
                    if (workbook != null) {
                        workbook.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    四、POI操作Word

    4.1读取 Word 文件

    Apache POI 也可以用于读取 Word 文件的内容。

    import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
    import org.apache.poi.xwpf.usermodel.XWPFDocument;
    import java.io.FileInputStream;
    import java.io.IOException;
    public class WordReader {
        public static void main(String[] args) {
            try (FileInputStream fis = new FileInputStream("example.docx");
                 XWPFDocument document = new XWPFDocument(fis)) {
                XWPFWordExtractor extractor = new XWPFWordExtractor(document);
                String text = extractor.getText();
                System.out.println(text);
            } catch (IOException e) {
    php            e.printStackTrace();
            }
        }
    }

    4.2写入 Word 文件

    写入 Word 文件也可以通过 Apache POI 来实现。

    import org.apache.poi.xwpf.usermodel.*;
    import java.io.FileOutputStream;
    impohttp://www.devze.comrt java.io.IOException;
    public class Wordwriter {
        public static void main(String[] args) {
            // 创建文档
            XWPFDocument document = new XWPFDocument();
            // 创建段落
            XWPFParagraph paragraph = document.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("这是一个示例文档。");
            // 写入文件
            try (FileOutputStream fos = new FileOutputStream("output.docx")) {
                document.write(fos);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    五、深入学习

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

    到此这篇关于Apache POI用法示例详解的文章就介绍到这了,更多相关Apache POI用法内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新运维

    运维排行榜