java-poi 复制Sheet到另一个excel的sheet中
时间: 2023-08-07 22:03:44 浏览: 1057
你可以使用Apache POI库中的Workbook类和Sheet类来复制Sheet到另一个Excel的Sheet中。下面是一个简单的示例代码:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class CopySheet {
public static void main(String[] args) {
try {
// 创建输入流读取Excel文件
FileInputStream fis = new FileInputStream("source.xlsx");
Workbook sourceWorkbook = new XSSFWorkbook(fis);
Sheet sourceSheet = sourceWorkbook.getSheet("Sheet1");
// 创建输出流写入新的Excel文件
FileOutputStream fos = new FileOutputStream("destination.xlsx");
Workbook destWorkbook = new XSSFWorkbook();
Sheet destSheet = destWorkbook.createSheet("Sheet1");
// 复制源Sheet到目标Sheet
copySheet(sourceSheet, destSheet);
// 写入目标Excel文件并关闭流
destWorkbook.write(fos);
fos.close();
sourceWorkbook.close();
destWorkbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private static void copySheet(Sheet sourceSheet, Sheet destSheet) {
// 复制行
for (int i = 0; i <= sourceSheet.getLastRowNum(); i++) {
if (sourceSheet.getRow(i) != null) {
destSheet.createRow(i).setRowStyle(sourceSheet.getRow(i).getRowStyle());
for (int j = 0; j < sourceSheet.getRow(i).getLastCellNum(); j++) {
if (sourceSheet.getRow(i).getCell(j) != null) {
destSheet.getRow(i).createCell(j).setCellValue(sourceSheet.getRow(i).getCell(j).toString());
destSheet.setColumnWidth(j, sourceSheet.getColumnWidth(j));
}
}
}
}
}
}
```
在这个示例中,我们使用了两个Excel文件,source.xlsx和destination.xlsx。我们从source.xlsx文件中读取Sheet1,然后将其复制到一个新的Excel文件destination.xlsx的Sheet1中。请记得修改代码中的文件路径和Sheet名称以适应你的情况。
阅读全文