2016-06-09 85 views
0

我想提供一種通過命令指定圖紙名稱的方法。表格名稱應根據表格中的內容動態創建。JXLS設置圖紙名稱

我注意到,在使用每個命令的多頁屬性時,可以爲動態頁指定固定頁名稱。

  1. version 1 documentation存在要重命名使用片$ {workbook.setSheetName(0,department.name)}的能力的參考。這可以在v2中使用嗎?它應該如何工作?工作簿是否需要添加到上下文中還是以前可用?

  2. 我嘗試在自定義命令中重命名工作表,但似乎XlsArea中的工作表名稱過於依賴,名稱要在XlsArea.applyAt中途更改。模板工作表未被刪除,處理未完成。

  3. 我想過試圖讓自定義命令添加區域偵聽器來更改工作表名稱。但區域偵聽器只能在父區域調用,我無法從命令中訪問該區域。

感謝,

韋恩。

回答

0

如果您使用multisheet generation功能,您可以將您自己的CellRefGenerator傳遞給Each-Command並在其中動態創建表格名稱。

目前無法在Excel模板中傳遞CellRefGenerator,但添加此功能應該相當簡單。

或者您可以使用Java代碼設置CellRefGenerator,如文檔中所示。

0

我懷疑這是做了正確的方式,但直到現在,這是我已經成功地做到這一點的唯一方法:

Context context = PoiTransformer.createInitialContext(); 
Workbook workbook = WorkbookFactory.create(templateInputStream); 
workbook.setSheetName(0, "newName");//Changing name of the first sheet 
PoiTransformer transformer = PoiTransformer.createTransformer(workbook); 
transformer.setOutputStream(resultOutputstream); 
JxlsHelper.getInstance().processTemplate(context, transformer);