Java学习---Excel读写操作

时间:2023-03-08 16:22:25
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包 ,包括以下内容

Java学习---Excel读写操作

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

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

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

Java学习---Excel读写操作

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 进行读取

Java学习---Excel读写操作

读取一个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"));

更多学习参考

点击下载