java jxl 复制单元格_在Java中使用JXL复制工作表

我想将工作表从现有的XLS文档复制到新的文档中,再复制到新位置。

我如何用JXL做到这一点?

Workbook w1 = Workbook.getWorkbook(new File("ExistingDocument.xls"), settings);

WritableWorkbook w2 = Workbook.createWorkbook(new File("NewDocument.xls"));

/* So here, I would like copy the first sheet from w1 to the second sheet of w2 ... */

w2.write();

w2.close();

w1.close();

编辑:

w1.getSheet(0).getCell(0, 0)不是WritableCell,所以我无法使用该copyTo方法。

有什么方法可以w1向w2工作簿添加单元格/ 工作表吗?

edit2:

那么我是否必须将工作簿的可写副本创建到另一个文件?

( edit3: 或者还有其他免费的lib可以做到这一点吗?)

更新:

当我运行此代码时,我会jxl.common.AssertionFailed在网上看到异常

WritableCellFormat newFormat = new WritableCellFormat(readFormat);

如果我删除此行并将代码更改为

newCell.setCellFormat(readFormat);

那么就不会复制单元格样式(字体,单元格边框等)。

try {

Workbook sourceDocument = Workbook.getWorkbook(new File("C:\\source.xls"));

WritableWorkbook writableTempSource = Workbook.createWorkbook(new File("C:\\temp.xls"), sourceDocument);

WritableWorkbook copyDocument = Workbook.createWorkbook(new File("C:\\copy.xls"));

WritableSheet sourceSheet = writableTempSource.getSheet(0);

WritableSheet targetSheet = copyDocument.createSheet("sheet 1", 0);

for (int row = 0; row < sourceSheet.getRows(); row++) {

for (int col = 0; col < sourceSheet.getColumns(); col++) {

WritableCell readCell = sourceSheet.getWritableCell(col, row);

WritableCell newCell = readCell.copyTo(col, row);

CellFormat readFormat = readCell.getCellFormat();

/* exception on the following line */

WritableCellFormat newFormat = new WritableCellFormat(readFormat);

newCell.setCellFormat(newFormat);

targetSheet.addCell(newCell);

}

}

copyDocument.write();

copyDocument.close();

writableTempSource.close();

sourceDocument.close();

} catch (Exception e) {

e.printStackTrace();

}

如何将单元格样式也复制到新单元格?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值