java中修改Excel表格内容
如何在java中修改.xls或.xlsx表格中的内容呢?朋友需要帮忙学习了一下,需求其实很简单,有很多表格文件,需要将其中一部分的数据进行修改并保存到源文件。
看到这样的需求,肯定大多数人第一时间想到的就是“查找替换”,但如果这个文件有成百上千个呢?如果你能找到成百上千个人帮你查找替换,那我就呵呵了,表示你已成仙,不需要看鄙人的博文了。
下面说一下我的思路,刚开始用到了jxl这个jar包中的方法,写了一种方法:
File f = new File("C:\\Users\\Documents\\abc.xls");
try {
Workbook wb = Workbook.getWorkbook(f);//
WritableWorkbook book = wb.createWorkbook(f, wb);
// Sheet sheet = wb.getSheet(0); // 获得第一个工作表对象
WritableSheet st = book.getSheet(0);
for (int i = 0; i < st.getRows(); i++) {for (int j = 0; j < st.getColumns(); j++) {Cell cell = st.getCell(j, i); // 获得单元格System.out.print(cell.getContents() + " ");}System.out.print("\n");
}
book.write();
book.close();
wb.close();
} catch (Exception e) {
e.printStackTrace();
}
如果要修改单元格中的内容可以这样:
File f = new File("C:\\Users\\Documents\\abc.xls");
try {
Workbook wb = Workbook.getWorkbook(f);//
WritableWorkbook book = wb.createWorkbook(f, wb);
// Sheet sheet = wb.getSheet(0); // 获得第一个工作表对象
WritableSheet st = book.getSheet(0);
for (int i = 0; i < st.getRows(); i++) {for (int j = 0; j < st.getColumns(); j++) {Cell cel = st.getCell(j,i);if(cel.getType() == CellType.LABEL){Label label = new Label(j, i, "Yes");// Yes 是需要填充单元格的内容st.addCell(label);}}
}
book.write();
book.close();
wb.close();
} catch (Exception e) {e.printStackTrace();
}
这样发现虽然数据修改了,却会有一个问题,在打开修改后的文件会提示数据不完整,虽然也可以正常使用,但总是这样提示,像我这样追求完美的人岂能忍受,找了一下原因,原来是和office的版本有关,使用jxl的包支持的office的版本是03之前的,现在大家安装的应该最低都是07或13的吧。
所以又换了一种方法:
使用apache的poi对表格进行操作:
File f = new File("C:\\Users\\Documents\\abc.xls");
InputStream inputStream = new FileInputStream(f);
HSSFWorkbook xssfWorkbook = new HSSFWorkbook(inputStream);
// XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0); //如果是.xlsx文件使用这个
HSSFSheet sheet1 = xssfWorkbook.getSheetAt(0);
for(Row row : sheet1){
for(Cell hssfCell : row){if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {hssfCell.setCellValue("nihao");} else if(hssfCell.getCellType() == Cell.CELL_TYPE_STRING){String str = hssfCell.getStringCellValue();if(str.equals("Fail")){hssfCell.setCellValue("Yes");}else if(str.equals("Block")){hssfCell.setCellValue("NA");}else if(str.equals("Warn")){hssfCell.setCellValue("NO");}}}
}
注意这里一定要判断单元格内容的类型,否则会报错
如果需要对某个文件夹下的所有文件进行操作怎么办?
也简单,对文件夹下的文件进行遍历读取修改即可:
File ff = new File("C:/Users/Documents");
File[] files = ff.listFiles();
...
for()
...
...
好了,这次就总结到这里,如果后续还有别的需求会即时更新的。
相关jar包: http://pan.baidu.com/s/1mi12mk4
java中修改Excel表格内容相关推荐
- 轻松胜任在Java中处理Excel表格
轻松胜任在Java中处理Excel表格 概要 许多机构都使用微软Excel表格作为信息交换的方式,众多的非专业编程人员.商业分析师和项目经理都能熟练的运用该技术.而使用Java从Excel文档中分析. ...
- java 简单获取Excel表格内容(初学者)
java 简单获取Excel表格内容(初学者) 代码: package cn.ccaih.read;import org.apache.poi.ss.usermodel.Cell; import or ...
- java中读取Excel表格中的数据
2019独角兽企业重金招聘Python工程师标准>>> 有关java中读取有上传的Excel文件,上传的Excel文件后缀可分为xls,xlsx 1:.xls后缀的文件在获取Work ...
- java 批量读取excel表格内容_java 使用POI批量导入excel数据
一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取e ...
- java中修改xml文件内容_修改所有xml文件中的某些内容
我的需求是:将所有项目的pom.xml中的ip地址替换 package com.company; import org.dom4j.Document; import org.dom4j.Documen ...
- mysql表格导入java_使用java技术将Excel表格内容导入mysql数据库
1.添加POI jar包到项目的lib目录下 2.Excel文件目录:d://excel.xls 3.数据库字段为:num1 num2 num3 num4 num5 num6 4.数据库名:bl ...
- 使用java技术将Excel表格内容导入mysql数据库
1.添加POI jar包到项目的lib目录下 2.Excel文件目录:d://excel.xls 3.数据库字段为:num1 num2 num3 num4 num5 num6 4.数据库名:bl ...
- java 操作 word 表格和样式,java读取word表格中的表格 java如何读取word中的excel表格数据...
Java 利用poi 可以直接读取word中的表格保持样式生1.读取word 2003及word 2007需要的jar包 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi ...
- 为何excel中数据无法计算机,电脑中excel表格内容无法复制的解决方法
一位朋友反馈自己在Excel中录入完数据后想要进行复制,将工作表内容直接复制到另一个表中去,可是操作时却失败了.那么,这该怎么办呢?下面是小编给大家分享的电脑中excel表格内容无法复制的解决方法.有 ...
最新文章
- 零基础入门学习Pyhton(23)字典:当索引不好用时
- VISTA IIS Worker Process 已停止工作 解决办法
- zabbix监控交换机出图断断续续
- C++ 哪些函数不能声明成虚函数
- 从微信AI首席顾问到金融文档智能
- 组态王延时启动程序_怎样用组态王软件实现延时功能?比如按下按钮4秒之后,一个指示灯亮,再过5秒,指示灯闪烁(闪烁4S)。谢谢...
- wxWidgets:在对话框之间共享信息
- 双稳态继电器工作原理图_固态继电器只有单一的作用吗?带你了解不一样的固态继电器...
- 计算机语言 angela,Angela
- linux启动tongweb命令,linux7开机自启动东方通tongweb
- log4j.properties文件中的log4j.rootLogger重要性
- 使用微信企业号发送工资条教程
- linux下电路仿真软件下载,Virtual Breadboard免费版
- 2017中国云计算评测报告
- 工商行政许可信息爬取及展示系统的设计与实现
- 怎么在中国知网免费下载论文?
- 论文参考文献DOI含义
- 3分钟打动投资人:商业计划书篇
- w3wp.exe进程来调试web应用程序
- W/View: requestLayout() improperly called by androidapp:id/toolbar_title} during second layout pass: