使用poi4.0版本复制sheet页到新的excel中并且复制样式
时间: 2023-09-19 10:05:47 浏览: 180
poi复制excel的sheet页
可以按照以下步骤使用poi4.0版本复制sheet页到新的excel中并复制样式:
1. 创建一个新的Excel工作簿:
```
Workbook newWorkbook = new XSSFWorkbook();
```
2. 获取原始Excel文件的Sheet页:
```
Workbook oldWorkbook = WorkbookFactory.create(new File("原始Excel文件路径"));
Sheet oldSheet = oldWorkbook.getSheet("Sheet1"); // 假设要复制的Sheet名为Sheet1
```
3. 创建一个新的Sheet页并将其命名为与原始Sheet页相同的名称:
```
Sheet newSheet = newWorkbook.createSheet(oldSheet.getSheetName());
```
4. 复制原始Sheet页中的行和单元格到新的Sheet页中,并复制样式:
```
for (Row oldRow : oldSheet) {
Row newRow = newSheet.createRow(oldRow.getRowNum());
for (Cell oldCell : oldRow) {
Cell newCell = newRow.createCell(oldCell.getColumnIndex());
newCell.setCellValue(oldCell.getStringCellValue()); // 复制单元格的值
newCell.setCellStyle(oldCell.getCellStyle()); // 复制单元格的样式
}
}
```
5. 将新的工作簿写入新的Excel文件中:
```
FileOutputStream fileOut = new FileOutputStream("新的Excel文件路径");
newWorkbook.write(fileOut);
fileOut.close();
```
完整的代码如下所示:
```
import java.io.File;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class CopySheetWithStyleExample {
public static void main(String[] args) throws Exception {
// 创建一个新的Excel工作簿
Workbook newWorkbook = new XSSFWorkbook();
// 获取原始Excel文件的Sheet页
Workbook oldWorkbook = WorkbookFactory.create(new File("原始Excel文件路径"));
Sheet oldSheet = oldWorkbook.getSheet("Sheet1"); // 假设要复制的Sheet名为Sheet1
// 创建一个新的Sheet页并将其命名为与原始Sheet页相同的名称
Sheet newSheet = newWorkbook.createSheet(oldSheet.getSheetName());
// 复制原始Sheet页中的行和单元格到新的Sheet页中,并复制样式
for (Row oldRow : oldSheet) {
Row newRow = newSheet.createRow(oldRow.getRowNum());
for (Cell oldCell : oldRow) {
Cell newCell = newRow.createCell(oldCell.getColumnIndex());
newCell.setCellValue(oldCell.getStringCellValue()); // 复制单元格的值
newCell.setCellStyle(oldCell.getCellStyle()); // 复制单元格的样式
}
}
// 将新的工作簿写入新的Excel文件中
FileOutputStream fileOut = new FileOutputStream("新的Excel文件路径");
newWorkbook.write(fileOut);
fileOut.close();
}
}
```
阅读全文