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

poi

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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Poj百练 4140:方程求解 (分类:二分)
下一篇:java如何利用模板文件生成word文档

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月08日 12时15分11秒