我正在试用Keikai电子表格。导入excel文件后,我想使用copyToEnd()复制工作表,但是它将删除我的原始工作表。我做错了吗?
Workbook srcBook = spreadsheet.imports("book1", new File(BOOK_FOLDER, "book1.xlsx"));
srcBook.getWorksheet().copyToEnd(spreadsheet.getWorkbook());
答案 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()
不应自动更改活动的工作簿,除非它是绑定到应用程序的唯一工作簿。