Java读取、写入Excel全版本(包含xls、xslx格式)通用方法及代码展示(POI)
程序员文章站
2023-12-01 17:01:40
POI是Java编写的开源跨平台Excel处理工具,不仅提供了对Excel的操作,也提供了对Word、PowerPoint和Visio等格式的文档的操作。jar包下载基于Maven工程的pom.xml文件配置POI如下所示: org.apac...
POI是Java编写的开源跨平台Excel处理工具,不仅提供了对Excel的操作,也提供了对Word、PowerPoint和Visio等格式的文档的操作。
jar包下载
基于Maven工程的pom.xml文件配置POI如下所示:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
相关类的介绍
Workbook:Workbook接口,用于创建工作簿。
Sheet:Sheet接口,用于创建工作表。
Row:Row接口,用于操作行。
Cell:Cell接口,用于操作列。
针对xls格式的Excel数据,需要使用HSSF开头的类进行操作;针对xlsx格式(Excel 2007以上版本)的Excel数据,需要使用XSSF开头的类进行操作。
相关方法的介绍
createRow(int column)方法:创建某行。
createCell(int column)方法:创建某列。
setCellValue(String value)方法:为该单元格赋值。
getSheet(String name)方法:读取工作表。
getSheetAt(int index)方法:读取工作表。
getLastRowNum()方法:获取表格的所有行数。
getLastCellNum()方法:获取某行的所有列数。
Java写入Excel全版本通用代码
/**
* 使用POI写入Excel(包括xls和xlsx)
*
* @author hakutaku
* @create 2020-07-01-21:07
**/
public class PoiExcelWritelProcess {
public static void main(String[] args) throws IOException {
// 文件名称
File file = new File("test/helloworld.xlsx");
// File file = new File("test/read.xlsx");
OutputStream outputStream = new FileOutputStream(file);
Workbook workbook = getWorkBook(file);
Sheet sheet = workbook.createSheet("Sheet1");
// 添加表头
Row row = sheet.createRow(0); // 创建某行
row.createCell(0).setCellValue("post_id");
row.createCell(1).setCellValue("post_title");
// 添加内容
for (int i = 0; i < 2; i++) {
Row everyRow = sheet.createRow(i + 1);
everyRow.createCell(0).setCellValue("帖子id为:0" + i);
everyRow.createCell(1).setCellValue("帖子内容为:" + i);
}
workbook.write(outputStream);
// 释放资源
workbook.close();
outputStream.close();
}
/*
* 判断Excel的版本,初始化不同的Workbook
* */
public static Workbook getWorkBook(File file) {
Workbook workbook = null;
// Excel 2003版本
if(file.getName().endsWith("xls")){
workbook = new HSSFWorkbook();
} // Excel 2007以上版本
else if (file.getName().endsWith("xlsx")){
workbook = new XSSFWorkbook();
}
return workbook;
}
}
Java读取Excel全版本通用代码
/**
* 使用POI读取Excel文件(包括xls和xlsx)
*
* @author hakutaku
* @create 2020-07-01-19:39
**/
public class PoiExcelRead {
public static void main(String[] args) throws IOException {
// 文件名称
File file = new File("test/helloworld.xlsx");
// File file = new File("test/read.xlsx");
// 根据文件名称获取操作工作簿
Workbook workbook = getWorkBook(file);
// 获取读取的工作表,这里有两种方式
Sheet sheet = workbook.getSheet("Sheet1");
// Sheet sheet = workbook.getSheetAt(0);
int allRow = sheet.getLastRowNum(); // 获取行数
// 按行读取数据
for (int i = 0; i <= allRow; i++) {
Row row = sheet.getRow(i);
// 获取列数
short lastCellNum = row.getLastCellNum();
for (int j = 0; j < lastCellNum; j++) {
String cellValue = row.getCell(j).getStringCellValue();
System.out.print(cellValue + "\t");
}
System.out.println();
}
workbook.close();
}
/*
* 判断Excel的版本,初始化不同的Workbook
* */
public static Workbook getWorkBook(File file) throws IOException {
// 输入流
InputStream in = new FileInputStream(file);
Workbook workbook = null;
// Excel 2003版本
if(file.getName().endsWith("xls")){
workbook = new HSSFWorkbook(in);
} // Excel 2007以上版本
else if (file.getName().endsWith("xlsx")){
workbook = new XSSFWorkbook(in);
}
in.close();
return workbook;
}
}
运行结果
本文地址:https://blog.csdn.net/qq_42506411/article/details/107072618