3

我正在尝试使用JXLS创建一个 Excel 工作簿。我想要一个用于在工作簿中浏览工作表的文本超链接。我在网上找不到任何有用的信息。请提供任何有助于解决问题的想法或超链接。谢谢

4

3 回答 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 上下文,它们将被呈现为正确的链接

http://jxls.sourceforge.net/samples/param_formulas.html

于 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)}其中linkVartitleVar是上下文中对应的变量。

于 2020-12-07T11:40:52.593 回答