java读写xlsx格式的MS Excel文件
发布日期:2021-06-29 15:52:08
浏览次数:4
分类:技术文章
本文共 2675 字,大约阅读时间需要 8 分钟。
java读写Excel文件
java读写Excel文件可以使用POI,当然还有其他第三方库,这篇文章暂时只记录poi的使用,其他库有机会再更新
POI
Apache POI - the Java API for Microsoft Documents
Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 Microsoft Office文档的功能。
POI对不同文档的操作需要导入不同的包
读取excel的xlxs文档则需要POI和poi-ooxml两个包
pom
org.apache.poi poi 3.17 org.apache.poi poi-ooxml 3.17
注:这里两个包的版本号要一致
读取Excel文档
FileInputStream in=new FileInputStream(file);//这里的XSSFWorkbook对应.xlsx格式的文档XSSFWorkbook xssfWorkbook = new XSSFWorkbook(in);//获取工作表的个数int numberOfSheets = xssfWorkbook.getNumberOfSheets();//遍历工作表for (int i = 0; i < numberOfSheets; i++) { XSSFSheet sheet = xssfWorkbook.getSheetAt(i); System.out.println("====="+sheet.getSheetName()+"===="); //获取工作表第一行行号 int firstRowNum = sheet.getFirstRowNum(); if (firstRowNum<0){ continue; } //获取工作表最后一行行号 int lastRowNum = sheet.getLastRowNum(); if (lastRowNum
写文件
String sheet1Name="user";String sheet2Name="dep";String[] sheet1Title={ "id","name","age"};Object[][] data1={ { 1,"zhansan",23},{ 2,"lisi",21}};String[] sheet2Title={ "id","depName","tel"};Object[][] data2={ { 1,"sale","1234465"},{ 2,"dev","464665664"}};//先在内存中创建工作簿XSSFWorkbook workbook = new XSSFWorkbook();//创建工作表XSSFSheet sheet1 = workbook.createSheet(sheet1Name);//创建行XSSFRow row = sheet1.createRow(0);for (int i = 0; i < sheet1Title.length; i++) { //创建单元格,并设置单元格内容 row.createCell(i).setCellValue(sheet1Title[i]);}for (int i = 0; i < data1.length; i++) { XSSFRow row1 = sheet1.createRow(i + 1); for (int j = 0; j < data1[i].length; j++) { row1.createCell(j).setCellValue(String.valueOf(data1[i][j])); }}XSSFSheet sheet2 = workbook.createSheet(sheet2Name);row = sheet2.createRow(0);for (int i = 0; i < sheet2Title.length; i++) { row.createCell(i).setCellValue(sheet2Title[i]);}for (int i = 0; i < data2.length; i++) { XSSFRow row1 = sheet2.createRow(i + 1); for (int j = 0; j < data1[i].length; j++) { row1.createCell(j).setCellValue(String.valueOf(data2[i][j])); }}//定义文件和文件输出流File file=new File("data/excel/out.xlsx");FileOutputStream outputStream=new FileOutputStream(file);//将数据写入.xlsx文件中workbook.write(outputStream);
总结
-
导入pom依赖的时候最好使用3.17版本,笔者试了其他几个版本,即便是版本号一致,也会出现异常
-
笔者测试时只测试了
.xlsx
格式的文档,有博客说xls
文档对应的类为HSSFWorkbook
,但是笔者并没有找到 -
读取小数时,有时候会把诸如0.3这样的数据读进去控制台打印为0.299999…,这属于正常现象,如果觉得不美观,可以使用
DecimalFormat
格式化一下,具体方法如下
DecimalFormat decimalFormat=new DecimalFormat("0.00");String str = decimalFormat.format(0.0299999);//输出0.03
转载地址:https://console.blog.csdn.net/article/details/109670369 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月08日 12时15分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java并发编程(5):volatile变量修饰符—意料之外的问题(含代码)
2019-04-30
设计模式(十一)代理模式Proxy(结构型)
2019-04-30
eclipse 配置黑色主题
2019-04-30
开发团队里是否需要测试人员?
2019-04-30
深入理解java虚拟机 精华总结(面试)
2019-04-30
Java中String类的方法及说明
2019-04-30
IntelliJ IDEA - 热部署插件JRebel 安装使用教程
2019-04-30
插件GsonFormat快速实现JavaBean
2019-04-30
Java面试题全集(上)
2019-04-30
Java面试题全集(中)
2019-04-30
Java面试题全集(下)
2019-04-30
《代码整洁之道》读书笔记
2019-04-30
Java程序员从笨鸟到菜鸟之(六十七)细谈Spring(一)spring简介
2019-04-30
Java程序员从笨鸟到菜鸟之(六十八)细谈Spring(二)自己动手模拟spring
2019-04-30
Java程序员从笨鸟到菜鸟全部博客目录
2021-07-03
java程序员从笨鸟到菜鸟之(七)一—java数据库操作
2021-07-03
Java程序员从笨鸟到菜鸟之(八)反射和代理机制
2021-07-03
面试心得与总结—BAT、网易、蘑菇街
2021-07-03
Java对象初始化顺序
2021-07-03