当前位置: 代码网 > 服务器>服务器>Linux > Apache POI用法示例详解

Apache POI用法示例详解

2024年09月12日 Linux 我要评论
一、apache poi是什么apache poi是用java编写的免费开源的跨平台的java api,apache poi提供api给java程序对microsoft office格式档案读和写的功

一、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.xssfworkbook;
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) {
        // 创建一个新的xssfworkbook对象,代表整个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) {
            e.printstacktrace();
        }
    }
}

4.2写入 word 文件

写入 word 文件也可以通过 apache poi 来实现。

import org.apache.poi.xwpf.usermodel.*;
import java.io.fileoutputstream;
import 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用法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com