如何用Java将一个Excel的文件的数据读取到另一个Excel中?
我有两个excel文件,希望将A文件中的数据合并在B文件中。有没有推荐的方案
如何用Java将一个Excel的文件的数据读取到另一个Excel中?
我有两个excel文件,希望将A文件中的数据合并在B文件中。有没有推荐的方案
当然,可以使用 Java 和 Apache POI 库来读取一个 Excel 文件并将其内容写入另一个 Excel 文件。Apache POI 是一个流行的库,可以用于处理 Microsoft Office 格式的文件,包括 Excel。
以下是一个简单的示例,说明如何使用 Apache POI 读取一个 Excel 文件并将数据写入另一个 Excel 文件。
首先,确保在你的项目中添加了 Apache POI 依赖。如果你使用 Maven,可以在你的 pom.xml
文件中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version> <!-- 请检查是否有更新的版本 -->
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version> <!-- 请检查是否有更新的版本 -->
</dependency>
然后,你可以使用以下 Java 代码来读取一个 Excel 文件并将其内容写入另一个 Excel 文件:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
public class ExcelCopy {
public static void main(String[] args) throws IOException {
// 源文件路径和目标文件路径
String sourceFilePath = "path_to_source_file.xlsx";
String targetFilePath = "path_to_target_file.xlsx";
// 读取源文件
FileInputStream fileInputStream = new FileInputStream(new File(sourceFilePath));
Workbook workbook = new XSSFWorkbook(fileInputStream);
Sheet sheet = workbook.getSheetAt(0); // 读取第一个工作表
Iterator<Row> iterator = sheet.iterator();
// 创建目标文件并写入数据
Workbook newWorkbook = new XSSFWorkbook(); // 新建一个工作簿
Sheet newSheet = newWorkbook.createSheet("Sheet1"); // 创建新的工作表
int rowIndex = 0;
while (iterator.hasNext()) { // 遍历源文件的每一行
Row sourceRow = iterator.next();
Row targetRow = newSheet.createRow(rowIndex++); // 在目标文件中创建新的行
copyRow(sourceRow, targetRow); // 将数据从源行复制到目标行
}
fileInputStream.close(); // 关闭源文件流
// 将目标文件写入磁盘并关闭流
try (FileOutputStream fileOutputStream = new FileOutputStream(targetFilePath)) {
newWorkbook.write(fileOutputStream);
} finally {
newWorkbook.close(); // 关闭目标工作簿流
}
}
}
GcExcel 支持按区域读取数据,读取数据后是二维数组,也支持直接把二维数组设置到特定区域中。
给区域设置值 - GcExcel 中文文档Java版 | 服务端高性能表格组件 - 葡萄城
public void CopyAcrossWorkbook(){
Workbook wb1 = new Workbook();
Workbook wb2 = new Workbook();
wb1.open("file1.xlsx");
wb2.open("file2.xlsx");
Object data = wb1.getWorksheets().get(0).getRange("A1:D20").getValue();
wb2.getWorksheets().get(0).getRange("A1:D20").setValue(data);
wb2.save("file2.xlsx");
}
15 回答8.3k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答4k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
推荐方案很简单。
第一步:读取A文件数据。
第二步:读取B文件数据。
第三步:按你的逻辑进行数据合并。
第四步:写C文件。