使用copyToEnd()复制工作表

时间:2019-05-16 10:50:12

标签: spreadsheet

我正在试用Keikai电子表格。导入excel文件后,我想使用copyToEnd()复制工作表,但是它将删除我的原始工作表。我做错了吗?

Workbook srcBook = spreadsheet.imports("book1", new File(BOOK_FOLDER, "book1.xlsx"));
srcBook.getWorksheet().copyToEnd(spreadsheet.getWorkbook());

1 个答案:

答案 0 :(得分:0)

当前,spreadsheet.import()会将活动工作簿更改为刚导入的工作簿;即在这种情况下为book1.xlsx。因此,原始工作表不会被删除,而是不会被激活(不可见)。

因此,srcBook实际上等于导入后的spreadsheet.getWorkbook()。将srcBook.getWorksheet()复制到spreadsheet.getWorkbook()时,就是在同一本书中复制一张纸。您会在活动图书中看到两张重复的纸。

解决方法是:

final Workbook book = spreadsheet.getWorkbook();
Workbook srcBook = spreadsheet.imports("book1.xlsx", new File(BOOK_FOLDER, "book1.xlsx"));
srcBook.getWorksheet().copyToEnd(book);
spreadsheet.setActiveWorkbook(book.getName());
System.out.println("currentBook: spreadsheet.getWorkbook():" + spreadsheet.getWorkbook().getName());

在将来的版本中,spreadsheet.imports()不应自动更改活动的工作簿,除非它是绑定到应用程序的唯一工作簿。