使用poi读写excel、向excel追加数据等,包括.xls和.xlsx文档
1、使用maven引入jar包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
实际引入的jar包为:

如果不使用maven方法引入jar包只需导入以下jar包

2、 向excel追加数据示例:
public static void dealExcel(String in, String out) throws Exception {
if (!in.equals(out)) {
copyFile(in, out);
}
FileInputStream input = new FileInputStream(new File(out));
Workbook wb = WorkbookFactory.create(input);
System.out.println(wb.getClass());
FileOutputStream output = new FileOutputStream(new File(out));
Sheet sheet = wb.getSheetAt(0);
int columnCount = -1;
int rowCount = 0;
for (Row row : sheet) {
if (columnCount == -1) {
columnCount = row.getLastCellNum();
}
if (row.getLastCellNum() == columnCount) {
//增加列
Cell last = row.createCell(columnCount);
if (rowCount == 0) {
last.setCellValue("Test");
} else {
last.setCellValue(rowCount);
}
rowCount++;
}
}
////添加行
//Row row = sheet.createRow(sheet.getLastRowNum());
//Cell cell = row.createCell(0);
//cell.setCellValue("Test");
output.flush();
wb.write(output);
wb.close();
output.close();
}
public static void copyFile(String in, String out) throws Exception {
InputStream inputStream = new FileInputStream(new File(in));
File copy = new File(out);
if (copy.exists()) {
copy.delete();
}
copy.createNewFile();
OutputStream outputStream = new FileOutputStream(copy);
byte[] buffer = new byte[1024 * 4];
while ((inputStream.read(buffer)) != -1) {
outputStream.write(buffer);
}
inputStream.close();
outputStream.close();
}
3、获取excel数据
public static String getCellData(Cell cell) {
Object value = null;
CellType cellType = cell.getCellTypeEnum();
if (cellType == CellType.STRING) {
value = cell.getStringCellValue();
} else if (cellType == CellType.BOOLEAN) {
value = cell.getBooleanCellValue();
} else if (cellType == CellType.NUMERIC) {
value = cell.getNumericCellValue();
} else if (cellType == CellType.FORMULA) {
value = cell.getCellFormula();
} else if (cellType == CellType.BLANK || cellType == CellType.ERROR) {
value = "error";
} else {
value = "";
}
return String.valueOf(value);
}
使用poi读写excel、向excel追加数据等,包括.xls和.xlsx文档的更多相关文章
- 使用poi或jxl,通过java读写xls、xlsx文档
package nicetime.com.baseutil; import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffExcepti ...
- POI加dom4j将数据库的数据按一定格式生成word文档
一:需求:将从数据库查处来的数据,生成word文档,并有固定的格式.(dom4j的jar包+poi的jar包) 二:解决:(1)先建立固定格式的word文档(2007版本以上),另存成为xml文件,作 ...
- NPOI(2.1.3)向excel中插入图片,xls文档图片插入成功,xlsx文档图片插入失败
众所周知,NPOI对xls和xlsx两个版本的excel文档的操作并没有一个统一的支持, 程序若想兼容这两个版本的操作,必须根据excel版本分别去调用HSSF和XSSF这两套操作库, 之前一直不明白 ...
- JAVA导入(读取)Excel中的数据(支持xls与xlsx文件)
一.导入jar包 poi-3.7.jarpoi-scratchpad-3.7.jarpoi-examples-3.7.jarpoi-ooxml-3.7.jarpoi-ooxml-schemas-3.7 ...
- C# DataGridView 导出 Excel(根据Excel版本显示选择不同后缀格式xls或xlsx)
/// <summary> /// DataGridView导出至Excel,解决问题:打开Excel文件格式与扩展名指定格式不一致 /// </summary> /// &l ...
- $用python处理Excel文档(2)——用xlsxwriter模块写xls/xlsx文档
Refer:<python自动化运维:技术与最佳实践> 更多用法参考xlsxwriter官方文档:http://xlsxwriter.readthedocs.io/ 本文主要总结一下如何使 ...
- $ 用python处理Excel文档(1)——用xlrd模块读取xls/xlsx文档
本文主要介绍xlrd模块读取Excel文档的基本用法,并以一个GDP数据的文档为例来进行操作. 1. 准备工作: 1. 安装xlrd:pip install xlrd 2. 准备数据集:从网上找到的1 ...
- Java读取Excel文件(包括xls和xlsx)的样例程序
样例程序如下所示,其中: parseXls()函数依赖于jxl,只能读取xls格式文件: parseExcel()函数依赖于apache poi,能够读取xls和xlsx两种格式的文件. jxl的依赖 ...
- Swift - 文件目录路径获取及数据储存(Home目录,文档目录,缓存目录)
iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒. 应用沙盒结构分析 1.应用程序包:包含了所有的资源文件和可执行文件 2.Documents:保存应用运 ...
随机推荐
- 一维数组的求平均成绩 Day06
package com.sxt.arraytest1; /* * 求班里学生的平均成绩,以及成绩的综合 输出每个同学的成绩 */ import java.util.Arrays; import jav ...
- 2019-8-31-PowerShell-拿到最近的10个系统日志
title author date CreateTime categories PowerShell 拿到最近的10个系统日志 lindexi 2019-08-31 16:55:58 +0800 20 ...
- SDUT-2121_数据结构实验之链表六:有序链表的建立
数据结构实验之链表六:有序链表的建立 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入N个无序的整数,建立一个有序链 ...
- Card Hand Sorting 二进制枚举暴力
这个题其实由于只有4种花色的,那么每种花色排列的顺序,也不过是4!种,然后对于每种花色内部到底是升序还是降序,其实也可以直接暴力,一共也就4!*2^4种情况,然后直接进行排序就可以了,但是我们如何计算 ...
- Hadoop应用程序示例
- Datanodes-心跳机制
- oracle函数 least(exp1,exp2,exp3,……,expn)
[功能]返回表达式列表中值最小的一个.如果表达式类型不同,会隐含转换为第一个表达式类型. [参数]exp1……n,各类型表达式 [返回]exp1类型 [示例] SELECT least(10,32,' ...
- loadrunner_关联检查点参数化
1.保存变量函数 lr_save_string("192.168.xx.xx","ip"); URL=http://{ip} 2.检查点函数 web_reg_f ...
- CCPC final Cockroaches
算法假了,我想的是通过枚举x,删除y的影响,这样答案第一个是没有任何问题的,但是第二个会算重复. 因为我枚举每一个x的时候,得到的y,而算另外一个x的时候,可能已经通过其他的点选到了这个点y这就有点麻 ...
- 2015年热门的国产开源软件TOP 50
2015年热门的国产开源软件TOP 50 开源中国在 2015 年得到了快速的发展,单开源软件收藏量就接近 40000 款,其中不乏优质的国产开源项目.本文从软件的收藏.下载.访问等多角度挑选出了 2 ...