使用org.apache.poi 复制excel sheet 带格式
时间: 2023-12-06 10:04:40 浏览: 170
poi复制excel的sheet页
以下是使用Apache POI复制Excel sheet并保留格式的代码示例:
```java
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
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.xssf.usermodel.XSSFWorkbook;
public class CopyExcelSheet {
public static void main(String[] args) {
try (Workbook workbook = new XSSFWorkbook("original.xlsx");
FileOutputStream fileOut = new FileOutputStream("copy.xlsx")) {
// 获取要复制的sheet
Sheet originalSheet = workbook.getSheet("Sheet1");
// 创建新的sheet并设置sheet名称
Sheet copiedSheet = workbook.createSheet("Copy of Sheet1");
// 复制行和列
for (int rowIndex = 0; rowIndex < originalSheet.getLastRowNum(); rowIndex++) {
Row originalRow = originalSheet.getRow(rowIndex);
Row copiedRow = copiedSheet.createRow(rowIndex);
if (originalRow != null) {
for (int colIndex = 0; colIndex < originalRow.getLastCellNum(); colIndex++) {
Cell originalCell = originalRow.getCell(colIndex);
Cell copiedCell = copiedRow.createCell(colIndex);
if (originalCell != null) {
// 复制单元格值
copiedCell.setCellValue(originalCell.getStringCellValue());
// 复制单元格样式
CellStyle originalCellStyle = originalCell.getCellStyle();
CellStyle copiedCellStyle = workbook.createCellStyle();
copiedCellStyle.cloneStyleFrom(originalCellStyle);
copiedCell.setCellStyle(copiedCellStyle);
}
}
}
}
// 保存工作簿
workbook.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在此示例中,我们首先打开原始Excel文件并获取要复制的sheet。然后,我们创建一个新的sheet并将其命名为“Copy of Sheet1”。接下来,我们循环遍历原始sheet中的所有行和列,并将它们复制到新的sheet中。对于每个单元格,我们复制单元格值并复制单元格样式。最后,我们将工作簿写入新的Excel文件中。
请注意,这只是一个基本示例,您可能需要根据自己的需求进行修改和优化。
阅读全文