如何在 Java 中读取和写入 Excel 文件?
Java 是一种面向对象的编程语言,拥有丰富的类库和工具,可以轻松读取和写入 Excel 文件。在 Java 中,读取和写入 Excel 文件可以通过 POI 库(Apache POI)来实现,POI 是一个处理 Microsoft Office 格式文件的 Java 库,支持 Excel、Word、PowerPoint、Outlook 等文件格式,可以读取和写入各种 Microsoft Office 格式文件。
这篇文章将讨论以下主题:
1. 添加 POI 库的依赖
2. 读取 Excel 文件中的数据
3. 写入数据至 Excel 文件中
1. 添加 POI 库的依赖
POI 库是基于 Java 语言开发的处理 Microsoft Office 格式文件的流行库,因此在使用 POI 库之前,需要将依赖库添加至项目中。可以通过构建工具(如 Maven 或 Gradle)来添加 POI 库的依赖,引入 POI 时应该使用以下代码:
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
2. 读取 Excel 文件中的数据
读取 Excel 文件中的数据是非常有用的操作。在 Java 中,使用 POI 库可以轻松地实现此操作。以下是一个读取 Excel 文件中的数据示例代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class ReadExcel {
public static void main(String[] args) {
try {
FileInputStream inputStream = new FileInputStream(new File("ExcelFile.xlsx"));
Workbook workbook = WorkbookFactory.create(inputStream);
// 从工作簿中获取 个表单
Sheet sheet = workbook.getSheetAt(0);
// 迭代表单的每一行
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// 迭代行的每一列
Iterator<Cell> cellIterator = row.iterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
// 如果当前列为字符串
if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
System.out.print(cell.getStringCellValue() + " ");
}
// 如果当前列为数字
else if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
System.out.print(cell.getNumericCellValue() + " ");
}
}
System.out.println();
}
workbook.close();
inputStream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
上述代码从指定的 Excel 文件(ExcelFile.xlsx)中读取数据,并将其输出到控制台。首先,代码使用 FileInputStream 类从 Excel 文件中读取数据,然后使用 WorkbookFactory.create(inputStream) 方法创建工作簿对象,其中 inputStream 是指向 Excel 文件的文件流对象。接着,代码使用 workbook.getSheetAt(0) 方法获取 个表单对象,然后使用 sheet.iterator() 方法获取迭代器对象以遍历每一行数据。在每一行内,使用 row.iterator() 方法获取迭代器对象并遍历每个单元格。最后,使用 cell.getCellType() 方法检查当前单元格的数据类型,并分别处理数字和字符数据。
3. 写入数据至 Excel 文件中
在 Java 中,使用 POI 库可以轻松地将数据写入 Excel 文件中。以下是写入数据至 Excel 文件中的示例代码:
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class WriteExcel {
public static void main(String[] args) {
// 创建新的 Excel 文件
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Sheet1");
// 创建行和单元格
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
// 写入数据
cell.setCellValue("Hello, World!");
// 将 Excel 文件保存到指定位置
try {
FileOutputStream outputStream = new FileOutputStream("ExcelFile.xlsx");
workbook.write(outputStream);
outputStream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println("文件已成功编写!");
}
}
上述代码创建一个新的 Excel 文件,并创建一个名为 Sheet1 的表单。接着,代码创建一个行和一个单元格对象,并使用 cell.setCellValue() 方法将数据写入单元格中。最后,将整个工作簿对象保存到指定的文件位置。
结论
使用 POI 库可以方便地在 Java 中读取和写入 Excel 文件。无论是读取现有文件的数据,还是创建和更新新文件,都可以使用 POI 库访问 Microsoft Excel 文件的内容。此外,POI 还提供了其他功能,如创建图表、合并表单和格式化文档。开发人员可以参考 POI 文档以了解更多细节和示例。
