Java学习---Excel读写操作

摘要:
1.1.1.简介Apache POI使用Apache POI读写Excel。ApachePOI是一个用Java编写的免费、开源、跨平台的Java API。Apache POI为Java程序提供了读取和写入Microsoft Office格式文件的能力。
1.1.1. 简介 Apache POI

使用Apache POI 完成Excel读写操作

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

http://poi.apache.org/ 下载POI的jar包 ,包括以下内容

wpsDA1A.tmp[1]

Excel 2003之前 xls 格式文件, Excel2007 文件格式 xlsx ,如果解析Excel,先分清Excel文件版本 ,如果2003之前, 使用HSSF API进行解析 、 如果 2007 Excel 使用 XSSF 进行解析

今天重点学习: HSSF 的 Excel解析 (针对Excel 2003 之前版本 )

下载 POI 3.9 的jar 包,完成Excel 读写操作

wpsDA1B.tmp[1]

docs  POI使用文档 (javadoc文档、 规范文档)

学习API : 推荐 POI3.5_HSSF_和XSSF_Excel操作快速入门手册.pdf

lib :相关jar包

ooxml-lib : 解析2007 Office版本文件jar 包

开发POI 最简单方式,导入 poi-3.9-20121203.jar 一个jar包就可以了

1.1.2.使用POI 读写Excel

参考: “POI整理.doc” 进行企业开发

编写代码,完成Excel解析和生成

解析步骤:

Excel文件 ---- HSSFWorkbook 工作薄对象 ---- Sheet --- Row 行--- Cell 单元格

解析时要注意,如果Excel单元格的数据,使用numeric 格式保存,不能使用 getStringCellValue 进行读取 , 使用 getNumericCellValue 进行读取

可以在Excel 设置单元格 数据保存格式 为文本类型,使用 getStringCellValue 进行读取

wpsDA2C.tmp[1]

读取一个Excel文件

// 1、 获得 HSSFWorkbook (针对 xls格式文件 )
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream("info.xls"));
// 2、获得要解析sheet
HSSFSheet sheet = hssfWorkbook.getSheet("Sheet1"); // 通过名称获得Sheet
HSSFSheet sheet2 = hssfWorkbook.getSheetAt(0);// 获得第一个Sheet,通过下标获得
// 3、解析Sheet中每一行
for (Row row : sheet) {
// 遍历 sheet中每一行
// 4、 打印行 中单元格数据
for (Cell cell : row) {
// 判断单元格数据类型
if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
System.out.println(cell.getStringCellValue());
} else if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
System.out.println(cell.getNumericCellValue());
}
}
// 打印指定单元格的值
System.out.println(row.getCell(1).getStringCellValue());// 打印每行第二个单元格的内容
}

生成一个Excel文件 :

// 写Workbook 工作薄 --- 写Sheet --- 写Row 行 --- 写Cell 单元格 
// 1、 创建 一个空的工作薄
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
// 2、 在工作薄建立 Sheet
HSSFSheet sheet = hssfWorkbook.createSheet("数据信息");
// 3、 向sheet写入行数据
HSSFRow row = sheet.createRow(0);// 创建第一行数据
// 4、 向row中单元格进行数据输出
row.createCell(0).setCellValue("产品");
row.createCell(1).setCellValue("价格");
// 5、 将Excel 数据输出到硬盘上
hssfWorkbook.write(new FileOutputStream("c:/test.xls"));

更多学习参考

点击下载

免责声明:文章转载自《Java学习---Excel读写操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在Ubuntu18.04下安装mysql没有初始密码,设置root密码前端应该知道的Web Components下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java 使用stringTemplate导出大批量数据excel(百万级)

目前java框架中能够生成excel文件的的确不少,但是,能够生成大数据量的excel框架,我倒是没发现,一般数据量大了都会出现内存溢出,所以,生成大数据量的excel文件要返璞归真,用java的基础技术,IO流来实现。 如果想用IO流来生成excel文件,必须要知道excel的文件格式内容,相当于生成html文件一样,用字符串拼接html标签保存到文本文...

Python数据分析:pandas玩转Excel (二)

1 对Excel文件的操作 方法一: 使用xlrd库或者xlwt库进行对excel表格的操作读与写; 方法二: pandas库同样支持excel的读写操作;且更加简便。 2 pd.read_excel( )的参数 读Excel文件 df=pd.read_excel(io, sheet_name=0, # 工作表名称...

Excel随机生成批量日期,以及注意事项

这个是WPS里写的一个函数,用来随机生成日期。首先E1和E2是两个日期端点,右键把单元格格式先设置成“日期”中的“xxxx年xx月xx日 xx:xx”,然后E3=E1-E2算出它们的距离。 在E4里面,写如图的函数=$E$1-RANBETWEEN(0,$E$3),直接翻译过来就是,E4单元格的值等于E1的值-(0到E3之间的随机值)。这里之所以不直接用E...

详解如何利用FarPoint Spread表格控件来构造Winform的Excel表格界面输入

我们先来简单了解一下WinForm和FarPoint,WinForm是·Net开发平台中对Windows Form的一种称谓。而FarPoint是一款模拟EXCEL的控件。它可以根据用户的要求实现很大部份的EXCEL操作,且包括多个子表、表格风格定义、公式计算、排序、分组等等都可以实现。本文主要是介绍利用FarPoint Spread表格控件来构造Winf...

SpringBoot 整合EasyExcel 获取动态Excel列名

导读 最近负责消息网关,里面有个短信模板导入功能,因为不同模板编号对应不同参数,导入后的数据定时发送,涉及到Excel中列名不固定问题,于是想根据列名+值,组合成一个大JSON,具体代码如下。 引入依赖 <dependency> <groupId>com.alibaba</groupId...

批量横向打印Excel

使用VBA脚本写的,具体使用如下:在批量需要打印的Excel文档下面,新建一个文档,将代码粘贴VBA工程里,然后运行即可。 具体代码如下: Attribute VB_Name = "模块1" SubPiLiangPring() Attribute PiLiangPring.VB_ProcData.VB_Invoke_Func = "14" Dim curP...