用Java读取和写入Excel文件
Excel是一种常用的电子表格文件格式,广泛应用于数据分析、报表生成和数据存储等领域。在Java中,我们可以通过使用特定的库来读取和写入Excel文件,这样可以使我们更方便地处理Excel文件中的数据。本文将介绍如何在Java中使用xlsx和xls格式的Excel文件,并提供相应的代码示例。
1. 使用Apache POI库操作Excel文件
Apache POI是一个开源的Java库,提供了操作各种Office文档的功能,包括Excel、Word和PowerPoint等。它支持xlsx和xls格式的Excel文件,并能够读取和写入其中的数据。
1.1 读取Excel文件
要读取Excel文件,我们需要使用Workbook
和Sheet
对象来表示Excel文件和工作表。下面是一个示例代码,演示了如何读取一个xlsx格式的Excel文件中的数据:
import org.apache.poi.ss.usermodel.*;
public class ReadExcelFile {
public static void main(String[] args) {
String filePath = "path/to/excel.xlsx";
try (Workbook workbook = WorkbookFactory.create(new File(filePath))) {
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
System.out.print(cell.toString() + "\t");
}
System.out.println();
}
} catch (IOException | InvalidFormatException e) {
e.printStackTrace();
}
}
}
上面的代码首先使用WorkbookFactory
类的create
方法打开Excel文件,然后使用getSheetAt
方法获取第一个工作表。接下来,我们可以使用for-each
循环遍历工作表中的每一行和每一个单元格,通过toString
方法获取单元格的值并输出到控制台。
1.2 写入Excel文件
要写入Excel文件,我们需要创建一个Workbook
对象,并在其中创建一个Sheet
对象。然后,我们可以使用Row
和Cell
对象来设置单元格的值。下面是一个示例代码,演示了如何将数据写入一个xlsx格式的Excel文件中:
import org.apache.poi.ss.usermodel.*;
public class WriteExcelFile {
public static void main(String[] args) {
String filePath = "path/to/excel.xlsx";
try (Workbook workbook = new XSSFWorkbook()) {
Sheet sheet = workbook.createSheet("Sheet1");
Object[][] data = {{"Name", "Age", "Gender"},
{"Tom", 25, "Male"},
{"Alice", 30, "Female"},
{"Bob", 35, "Male"}};
int rowNum = 0;
for (Object[] rowData : data) {
Row row = sheet.createRow(rowNum++);
int colNum = 0;
for (Object field : rowData) {
Cell cell = row.createCell(colNum++);
if (field instanceof String) {
cell.setCellValue((String) field);
} else if (field instanceof Integer) {
cell.setCellValue((Integer) field);
}
}
}
try (FileOutputStream outputStream = new FileOutputStream(filePath)) {
workbook.write(outputStream);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面的代码首先创建了一个XSSFWorkbook
对象,表示一个xlsx格式的Excel文件。然后,我们使用createSheet
方法创建了一个名为"Sheet1"的工作表。接下来,我们定义了一个二维数组data
,其中包含了要写入的数据。通过for-each
循环遍历二维数组,并使用createRow
和createCell
方法创建行和单元格对象,然后通过setCellValue
方法设置单元格的值。最后,我们使用FileOutputStream
将Workbook对象写入到文件中。
2. 使用JExcelAPI库操作Excel文件
JExcelAPI是另一个流行的Java库,用于读取和写入Excel文件。它支持xls格式的Excel文件,并提供了一组简单易用的API来操作Excel文件中的数据。
2.1 读取Excel文件
要使用JExcelAPI读取Excel文件,我们需要使用Workbook
和Sheet
对象来表示Excel文件和工作表。下面是一个示例代码,演示了如何读取一个xls格式的Excel文件中的数据:
import jxl.Workbook;
import jxl.Sheet;
import jxl.Cell;
public class ReadExcelFile {
public static void main(String[] args) {