簡體   English   中英

JXLS設置表名稱

[英]JXLS Set Sheet Name

我想提供一種通過命令指定工作表名稱的方法。 工作表名稱應根據工作表中的內容動態創建。

我注意到,當使用每個命令的multisheet屬性時,可以為動態工作表指定固定的工作表名稱。

  1. 版本1文檔中 ,引用了使用$ {workbook.setSheetName(0,department.name)}重命名工作表的功能。 可以在v2中使用嗎? 應該如何運作? 是需要將工作簿添加到上下文中還是以前可用?

  2. 我嘗試在自定義命令中重命名工作表,但似乎對XlsArea中工作表名稱的依賴性太大,因此無法在XlsArea.applyAt中途更改名稱。 模板工作表未刪除,處理未完成。

  3. 我考慮過嘗試獲取定制命令來添加區域偵聽器以更改工作表名稱。 但是區域偵聽器僅在父區域中調用,而我無法從命令中訪問該區域。

謝謝,

韋恩

我懷疑這是正確的方法,但是直到現在,這是我設法做到的唯一方法:

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);

如果使用多表生成功能,則只需將自己的CellRefGenerator傳遞給Every-Command並在其中動態創建表名稱。

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

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

可以使用XLSTransformer類的以下方法來完成。

XLSTransformer transformer = new XLSTransformer();
setSpreadsheetToRename(oladSheetName, String newSheetName) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM