最新要闻
- 看热讯:小米子公司发通告:拼多多、京东、淘宝上的“紫米官旗”不是我
- 硅谷银行停业没影响!贾跃亭要“翻身”:4月26日FF91终极发布
- 世界今日讯!德国反对2035禁售燃油车!欧盟做出让步:内燃机还有活路
- 天天观热点:Intel要求电源厂商使用单一规格制作12VHPWR接头
- 马斯克减肥神药遭疯抢!欧洲药管局警告:2023年都会短缺
- 宝马iX3高速撞车 车主:车道纠偏系统和自己抢方向盘酿事故
- 环球最新:公司回应因给客户倒水太满开除员工:该走啥程序走啥程序
- 新机型“无可奉告”:任天堂称对Switch未来充满信心
- 【全球速看料】史上最大规模!魅族领克无界生态发布会官宣:魅族20系列、Flyme 10来了
- 全球视点!一加逆袭!成为2023年销量增速最快的品牌:友商普遍下滑
- 共314套房源!昌平区公租房配租公告来了
- 全球视讯!特斯拉叫停与比亚迪合作?比亚迪回应:不实信息
- 环球即时:苹果人事巨震:11位高管扎堆离职 库克也要降薪40%
- 微头条丨燃油车 真凉透了吗
- 【天天时快讯】采用全新NT架构:新Windows端QQ首个版本将于24日发布
- 世界资讯:剧版打破多项纪录!爱奇艺考虑拍《狂飙》电影版 网友评论两级分化
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球微头条丨java操作excel文件——POI
简述
在开发者经常会涉及和excel的交互,如将数据库的数据导出到内存中,如将excel的数据导入到内存中。
常用的方式有两种——poi和java excel,其中常用的是poi
POI的全称是Poor Obfuscation Implementation,中文是可怜的模糊实现(笑),POI是用Java编写的免费开源的跨平台的 Java API,可以用java操作excel文件
(相关资料图)
demo
https://github.com/Layton-sy/POI_practice
依赖
maven
org.apache.poi poi 3.14 org.apache.poi poi-ooxml 3.14
gradle
implementation "org.apache.poi:poi:5.2.1" //基本依赖,仅操作 xls 格式只需引入此依赖implementation "org.apache.poi:poi-ooxml:5.2.2" //使用 xlsx 格式需要额外引入此依赖
POI开发中常用的类和方法
POI中对不同的文件类型对应不同的类,以下是不同文件对应的类前缀
HSSF | Microsoft Excel XLS格式 |
XSSF | Microsoft Excel OOXML XLSX格式 |
HWPF | Microsoft Word DOC97格式 |
XWPF | Microsoft Word DOC2003格式 |
HSLF | Microsoft PowerPoint格式 |
HDGF | Microsoft Visio格式 |
HPBF | Microsoft Publisher格式 |
HSMF | Microsoft Outlook格式 |
经常使用的是HSSF和XSSF,对应xls和xlsx格式,这里我们选XSSF举例
以下是我们常用的类,他们的关系是
一个Excel文件对应于一个workbook(XSSFWorkbook),一个workbook可以有多个sheet(XSSFSheet)组成,一个sheet是由多个row(XSSFRow)组成,一个row是由多个cell(XSSFCell)组成
XSSFWorkbook
XSSFWorkbook对应excel的工作簿,代表整个文档,常用方法:
HSSFWorkbook() | 创建一个工作簿 |
HSSFWorkbook(InputStream inputStream) | 创建一个关联输入流的工作簿,可以将一个excel文件封装成工作簿 |
createSheet(String sheetname) | 创建一个新的Sheet |
getSheet(String sheetName) | 通过名称获取Sheet |
getSheetAt(int index) | 通过索引获取Sheet,索引从0开始 |
createCellStyle() | 创建单元格样式 |
getNumberOfSheets() | 获取sheet的个数 |
setActiveSheet(int index) | 设置默认选中的工作表 |
write() | 写入文件(通过文件导入) |
write(File newFile) | 写入文件(新建工作簿) |
XSSFSheet
HSSFSheet对应的是工作表,常用方法:
createRow(int rownum) | 创建新行,需要指定行号,行号从0开始 |
getRow(int index) | 根据索引获取指定的行 |
addMergedRegion(CellRangeAddress region) | 合并单元格 |
CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol) | 单元格范围, 用于合并单元格,需要指定要合并的首行、最后一行、首列、最后一列 |
autoSizeColumn(int column) | 自动调整列的宽度来适应内容 |
getLastRowNum() | 获取最后的行的索引,没有行或者只有一行的时候返回0 |
XSSFRow
XSSFRow对应的是表中的一行,常用方法:
createCell(int column) | 创建新的单元格 |
setCell(shot index) | 设置单元格 |
getCell(shot index) | 根据索引拿到单元格 |
getCell(CellReference.convertColStringToIndex(“A”)) | 根据列名英文字母获取 |
setRowStyle(HSSFCellStyle style) | 设置行样式 |
short getLastCellNum() | 获取最后的单元格号,如果单元格有第一个开始算,lastCellNum就是列的个数 |
setHeightInPoints(float height) | 设置行的高度 |
XSSFCell
XSSFCell对应的是一个单元格,常用方法:
setCellValue(String value) | 设置单元格的值 |
setCellType() | 设置单元格类型,如 字符串、数字、布尔等 |
setCellStyle() | 设置单元格样式 |
getStringCellValue() | 获取单元格中的字符串值 |
setCellStyle(HSSFCellStyle style) | 设置单元格样式,例如字体、加粗、格式化 |
setCellFormula(String formula) | 设置计算公式,计算的结果作为单元格的值 |
XSSFCellStyle
XSSFCellStyle对应的是一个单元格的样式,常用方法:
setFont(Font font) | 为单元格设置字体样式 |
setAlignment(HorizontalAlignment align) | 水平对齐 |
setVerticalAlignment(VerticalAlignment align) | 垂直对齐 |
setFillBackgroundColor(short bg) | 设置背景色 |
示例
写入Excel
最简单地在excel里第一个表的第一行第一列加上一个自定义的值
Workbook workbook = new XSSFWorkbook();Sheet sheet = workbook.createSheet("laytonSheet1");Row row = sheet.createRow(0);Cell cell = row.createCell(0);cell.setCellValue("cell value");FileOutputStream fileOutputStream = new FileOutputStream("文件路径");workbook.write(fileOutputStream);fileOutputStream.close();
可以看到输出的文件sheet名被指定成我们想要的值,第一行第一列单元格也有我们的值
读取Excel
通过FileInputStream可以将文档封装成Workbook,然后读表、行、单元格,即可拿到你想要的单元格的值
FileInputStream fileInputStream = new FileInputStream("文件路径");Workbook workbook = new XSSFWorkbook(fileInputStream);Sheet sheet = workbook.getSheetAt(0);Row row = sheet.getRow(0);Cell cell = row.getCell(0);String value = cell.getStringCellValue();System.out.println(value);
批量处理单元格
待续
References
https://juejin.cn/post/6844904080704290824
https://juejin.cn/post/7039626565369462792#heading-12
https://blog.csdn.net/vbirdbest/article/details/72870714
https://www.cnblogs.com/LiZhiW/p/4313789.html
关键词:
-
天天讯息:剑指 Offer 68 - II. 二叉树的最近公共祖先(java解题)
leetcode《图解数据结构》剑指Offer68-II 二叉树的最近公共祖先(java解题)的解题思路和java代码,并...
来源: 全球微头条丨java操作excel文件——POI
天天讯息:剑指 Offer 68 - II. 二叉树的最近公共祖先(java解题)
分布式架构-可观测性
obs studio 插件
看热讯:小米子公司发通告:拼多多、京东、淘宝上的“紫米官旗”不是我
硅谷银行停业没影响!贾跃亭要“翻身”:4月26日FF91终极发布
世界今日讯!德国反对2035禁售燃油车!欧盟做出让步:内燃机还有活路
天天观热点:Intel要求电源厂商使用单一规格制作12VHPWR接头
马斯克减肥神药遭疯抢!欧洲药管局警告:2023年都会短缺
天天热讯:DockQuery | 基于E-R图的数据建模功能使用实践
宝马iX3高速撞车 车主:车道纠偏系统和自己抢方向盘酿事故
环球最新:公司回应因给客户倒水太满开除员工:该走啥程序走啥程序
新机型“无可奉告”:任天堂称对Switch未来充满信心
【全球速看料】史上最大规模!魅族领克无界生态发布会官宣:魅族20系列、Flyme 10来了
全球视点!一加逆袭!成为2023年销量增速最快的品牌:友商普遍下滑
共314套房源!昌平区公租房配租公告来了
焦点资讯:GO语言学习笔记-测试篇 Study for Go ! Chapter ten- Test
要闻速递:面试官:怎么删除 HashMap 中的重复元素?第 3 种实现思路,99% 的人不会!
世界快消息!k8s的Helm 工具安装
RPC框架JMH测试-chatgpt自动生成
前端设计模式——代理模式
全球视讯!特斯拉叫停与比亚迪合作?比亚迪回应:不实信息
环球即时:苹果人事巨震:11位高管扎堆离职 库克也要降薪40%
微头条丨燃油车 真凉透了吗
【天天时快讯】采用全新NT架构:新Windows端QQ首个版本将于24日发布
世界资讯:剧版打破多项纪录!爱奇艺考虑拍《狂飙》电影版 网友评论两级分化
每日看点!插件化开发详解
关注:读Java性能权威指南(第2版)笔记16_垃圾回收C
全球滚动:京东小程序CI工具实践
巧妙使用SQL Server的计算列实现项目唯一规则快速定制
天天快资讯:免费玩没戏 《暗黑4》不会加入微软XGP:四五百块还是要花的
首位华裔奥斯卡影后!杨紫琼84岁母亲喜极而泣 为女儿感到自豪
世界微资讯!Redis内存碎片深入分析
多举措提高职教吸引力 助力职业教育“强起来”“活起来”
焦点简讯:曝苹果最快2024年商用MicroLED屏:比OLED更香
今日快讯:7月1日普及!我国将全面淘汰传统后视镜 都换汽车电子后视镜:上游供应链已准备好
全球今日报丨老人捡钱不愿归还 女孩崩溃下跪引网友愤怒:律师称可起诉 专家喊话不能仗着年龄大
环球新动态:适合买二手的硬件只有4个:学会省1000元
K8S-Helm
资讯:04-数据类型
环球动态:在Linux中安装containerd作为kubernetes的容器运行时
当前通讯!“自杀式”降价杀红眼:燃油车真凉透了?
乘客出地铁黄鹤楼站的统一姿势:集体反站拍摄绝美夜景
天天动态:大爷充29万做美容反悔起诉退钱:宣称能打通“任督二脉”等
世界聚焦:硅谷银行破产:在营销号那儿 咋又成美国赢了?
从大厂离职后 游戏程序员们过得咋样?
鲍美瑶男朋友大白_鲍美瑶
即时看!第129篇:JS模块化开发
每日快播:Yus框架之nl子级管控指令
鼻炎患者要注意了!今年花粉高峰期来得猛又早:将持续数月
中消协等倡议推广小份菜、半份菜:鼓励线上点餐推出“菜量自动提醒”功能
焦点速读:《流浪地球2》上映51天票房破40亿 豆瓣评分又涨了!导演自曝第三部
AMD技术岗最高头衔!DX10/11发明人、皓龙处理器之父等升任企业院士
22-23(2)第2次线上赛
【打怪升级】【rocketMq】rocket的持久化
Linux进程与线程的基本概念及区别
天天消息!k8s单节点改为高可用和更新证书
世界滚动:这还是中国乒乓球吗?王牌选手接连倒下,对手赢球后开心改签机票
欧盟约法三章:苹果无法对iPhone 15 USB-C加密来限制充电速度
每日快报!董明珠称很烦吹捧她的员工:不敢讲真话 没法信任
环球滚动:高尔夫球“名场面”或消失!剧版《最后生还者2》将修改原作剧情
马来西亚原装进口:猫山王榴莲雪糕4.9元/支四折发车
焦点讯息:联想YOGA Pro系列升级:新机全系标配32GB内存+1TB存储
环球今亮点!清华博士回应送外卖:不是炒作 曾创业欠下了百万元债务
环球今热点:299元 雷神X3电竞路由器上架:512MB内存 可253台设备同时连
即时看!比亚迪又拿大单:英国公司订购5000辆元Plus EV 价格比国内贵了一倍
全球热点!最强消费级PCIe 5.0 SSD有多强!技嘉大雕510K 2TB评测:顺序读写破10GB/s、4K超100MB/s
全球速讯:使用symbolicatecrash工具符号化Crash日志
环球速看:开心档之HTML 属性
全球热门:博雅互动(00434.HK)将于3月23日举行董事会会议以审批全年业绩
世界消息!官方:着力解决自媒体内容失真问题、清除违规吸粉
董明珠称批评人很快乐:帮助对方成长
不受支持的PC强行升级Win11 烦人的水印又回来了 微软回应
快看:PPT既视感!电视剧《狂飙》更换新片头:曾被指抄袭网飞纪录片
天天最资讯丨哈佛大学研究:体力劳动更多的男性生育能力更强
当前热点-网站https 问题记录
出道即封神的ChatGPT,现在怎么样了?
IntelliJ IDEA使用教程——不使用maven管理下导入jar包
每日精选:使用Docker搭建MinIO集群服务
CommonsBeanUtils1反序列化分析
全球快资讯:董明珠:如果员工经常在我面前拍马屁 我就开除他
当前关注:网店因商品拆封拒绝七天无理由退货:最终被罚4万元
焦点!全村停电 男子用比亚迪DM-i给自家全屋供电 邻居:为啥就他家有电?
丫丫伙食新添胡萝卜:但它没碰
天天快讯:剧版《最后生还者》顺利收官:M站评分达84分
CommonsCollections4反序列化分析
环球视讯!前端开发爬虫首选puppeteer
聚焦:subtotal函数的作用_SUBTOTAL函数的用法
环球观天下!中国移动涨停 市值2.1万亿创历史新高 挑战A股第一贵州茅台
今日聚焦!亲肤0刺激 润本婴儿驱蚊喷雾大瓶9.9(超市39.9)
天天视讯!高蛋白低脂美味!舌里减脂鸡胸肉5袋到手12.9元
头条焦点:净利润翻倍 宁德时代在补什么课?
最新资讯:卖事故车被判退一赔三!车主:特斯拉让我赔代步车50万租金
环球消息!【数字化运营】PagerDuty平台与上海道宁帮助您的数字基础设施中自动化、编排和加速响应
LocalDateTime应用比较日期
玩家不用担心 分析师称微软收购动视暴雪只会伤害索尼
全球观焦点:游客吐槽25元看海洋馆就几个鱼缸:现场和家里客厅一样大
环球百事通!樱桃推出KW 9200 MINI超薄键盘:剪刀脚按键、三模连接
全球快资讯丨雅阁车主第一次坐比亚迪汉 自侃像是土包子进城 信仰崩塌
焦点讯息:美国公示丫丫回国相关申请:快回家了!