gpt4 book ai didi

java - 将 POI 样式从工作表克隆到另一个工作表

转载 作者:太空宇宙 更新时间:2023-11-04 13:21:30 25 4
gpt4 key购买 nike

我有一个 XSSF 模板表我正在尝试基于模板创建 SXSSF 文件,我可以成功创建工作表,但是当我尝试将样式从旧工作表复制到新工作表时遇到问题

这是我的代码

FileInputStream templateFile = null;
XSSFWorkbook templateWorkbook = null;
XSSFSheet templateSheet = null;

templateFile = new FileInputStream(this.templateFilePath);
templateWorkbook = new XSSFWorkbook(templateFile);
templateSheet = templateWorkbook.getSheetAt(0);

SXSSFWorkbook sworkbook = new SXSSFWorkbook(this.largeReportCashRows);
SXSSFSheet sworksheet = (SXSSFSheet) sworkbook.createSheet();


//Create styles
CellStyle newStyle = sworkbook.createCellStyle();
//style.setFillPattern(XSSFCellStyle.FINE_DOTS );
//style.setFillBackgroundColor(IndexedColors.RED.getIndex());
CellStyle oldCellStyle = templateSheet.getRow(0).getCell(0).getCellStyle();
newStyle.cloneStyleFrom(oldCellStyle);

//SOME CODE TO CREATE ROWS & CELLS IN THE new sheet "sworksheet"
Cell cell1;
cell1.setCellStyle(newStyle);

当我执行代码时,它会运行并生成工作表,但是当我打开它时,我收到一条错误消息,告诉我工作表已损坏,在告诉 Excel 修复它后。它已修复,但样式不起作用!

请帮忙

最佳答案

        //to get old cell style from a cell
CellStyle oldCellStyle = sheet.getRow(0).getCell(0).getCellStyle();

//to create a new sheet in which you want to use this style
XSSFSheet sheet2 = workbook.createSheet("new2");

row=sheet2.createRow(0);
cell=row.createCell(0);
cell.setCellValue("test");
//to set old style to new cell
cell.setCellStyle(oldCellStyle);

FileOutputStream out1 = new FileOutputStream("D:\\test.xlsx");
workbook.write(out1);
out1.close();

关于java - 将 POI 样式从工作表克隆到另一个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33012394/

25 4 0
文章推荐: javascript - 在 ImageFlow Slider 中使用
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com