论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
分布式数据库
›
Apache POI用法
Apache POI用法
飞不高
论坛元老
|
2024-9-12 01:32:22
|
显示全部楼层
|
阅读模式
楼主
主题
1551
|
帖子
1551
|
积分
4653
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
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读取数据
//通过遍历工作表获得行,遍历行获得单元格,最终获取单元格中的值。
//创建工作簿
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/
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
飞不高
论坛元老
这个人很懒什么都没写!
楼主热帖
Java集合的lastlastIndexOfSubList()方 ...
WPF开发经验-实现自带触控键盘的TextBo ...
如何在 K8S 集群范围使用 imagePullSec ...
Python批量采集百度资讯文章,如何自定 ...
【关系型数据库】事务特性及事务隔离级 ...
微信小程序集合3(百度小说+电商+仿哗 ...
MapReduce开发
瓦片地图
mysql总结
浅谈售前的业务思维
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Java
Oracle
SQL-Server
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表