我正在尝试使用JXLS创建一个 Excel 工作簿。我想要一个用于在工作簿中浏览工作表的文本超链接。我在网上找不到任何有用的信息。请提供任何有助于解决问题的想法或超链接。谢谢
问问题
1354 次
3 回答
4
jXLS是一个小型且易于使用的 Java 库,用于使用 XLS 模板编写 Excel 文件,并使用 XML 配置将 Excel 中的数据读取到 Java 对象中。如果您尝试创建 hyerlink,jXLS 不具备低级 excel 操作能力。但是你可以使用Apache POI一个免费的库。此代码为该任务创建到 Cell 的超链接,如下所示。
//creating the cell
Row row = my_sheet.createRow(0);
Cell cell = row.createCell(0);
//creating helper class
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFCreationHelper helper= workbook.getCreationHelper();
//creating the hyperlink
link = helper.createHyperlink(HSSFHyperlink.LINK_DOCUMENT);
link.setAddress("'target_worksheet_name'!A1");
//optional hyperlink style
XSSFCellStyle hlinkstyle = workbook.createCellStyle();
XSSFFont hlinkfont = workbook.createFont();
hlinkfont.setUnderline(XSSFFont.U_SINGLE);
hlinkfont.setColor(HSSFColor.BLUE.index);
hlinkstyle.setFont(hlinkfont);
//applying the hyperlink to the cell
cell.setHyperlink(link);
于 2015-06-08T01:37:08.333 回答
3
jxls 支持参数化公式,你大概可以
使用具有如下公式的单元格 =HYPERLINK(" http://test.com/ ", "Click ME")
使用 =HYPERLINK(${paramLink}, ${paramDisplay}) 在单元格中对其进行参数化
将参数传递给 jxls 上下文,它们将被呈现为正确的链接
于 2016-05-16T11:05:21.753 回答
0
老问题,但另一个可能的解决方案是使用 JXLS 2+ 和PoiTransformer
. 它有一个名为的实用程序类PoiUtil
,可以将其注入到上下文中。
final var transformer = PoiTransformer.createTransformer(inputStream, outputStream);
// it is important to create the context like this
// or you can manually insert the PoiUtil instance if you wish
final var context = PoiTransformer.createInitialContext();
// setup your context...
JxlsHelper.getInstance().processTemplate(context, transformer);
而在模板中你可以这样使用它:${util.hyperlink(linkVar, titleVar)}
其中linkVar
和titleVar
是上下文中对应的变量。
于 2020-12-07T11:40:52.593 回答