在Java中,使用Apache POI库处理Excel文件是一项常见的任务。其中,复制行操作是许多开发者需要掌握的基本技能之一。本文将详细介绍如何使用Java POI库来复制Excel表格中的行,并提供一些实用的技巧来提升工作效率。
1. 准备工作
在开始之前,请确保已经将Apache POI库添加到您的项目中。以下是Maven依赖的示例:
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
</dependencies>
2. 创建Excel工作簿和工作表
首先,我们需要创建一个Excel工作簿和工作表。以下是一个简单的示例:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelCopyExample {
public static void main(String[] args) {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("示例工作表");
// 创建行和单元格
Row row1 = sheet.createRow(0);
row1.createCell(0).setCellValue("姓名");
row1.createCell(1).setCellValue("年龄");
Row row2 = sheet.createRow(1);
row2.createCell(0).setCellValue("张三");
row2.createCell(1).setCellValue(25);
// 保存工作簿
try (OutputStream outputStream = new FileOutputStream("example.xlsx")) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. 复制行
要复制行,我们可以使用以下方法:
public static void copyRow(Sheet sourceSheet, Sheet targetSheet, int sourceRowNum, int targetRowNum) {
Row sourceRow = sourceSheet.getRow(sourceRowNum);
if (sourceRow != null) {
Row targetRow = targetSheet.createRow(targetRowNum);
for (int i = 0; i < sourceRow.getLastCellNum(); i++) {
Cell sourceCell = sourceRow.getCell(i);
Cell targetCell = targetRow.createCell(i);
if (sourceCell != null) {
targetCell.setCellType(sourceCell.getCellType());
targetCell.setCellValue(sourceCell.getStringCellValue());
}
}
}
}
4. 使用示例
以下是如何使用copyRow方法来复制行的示例:
public static void main(String[] args) {
Workbook workbook = new XSSFWorkbook();
Sheet sourceSheet = workbook.createSheet("源工作表");
Sheet targetSheet = workbook.createSheet("目标工作表");
// 创建行和单元格
Row row1 = sourceSheet.createRow(0);
row1.createCell(0).setCellValue("姓名");
row1.createCell(1).setCellValue("年龄");
Row row2 = sourceSheet.createRow(1);
row2.createCell(0).setCellValue("张三");
row2.createCell(1).setCellValue(25);
// 复制行
copyRow(sourceSheet, targetSheet, 1, 0);
// 保存工作簿
try (OutputStream outputStream = new FileOutputStream("example.xlsx")) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
5. 总结
通过本文的介绍,您应该已经掌握了使用Java POI库复制Excel表格行的基本方法。在实际应用中,您可以根据需要调整代码,以适应不同的需求。希望这些信息能帮助您提升工作效率!
