Java JXLS-如何在工作簿中创建Excel工作表的超链接
我正在尝试使用创建Excel工作簿。我想要一个文本超链接,用于在工作簿中的工作表中导航。我在网上找不到任何有用的信息。请给出任何有助于解决问题的想法或超链接。Thank是一个小型且易于使用的Java库,用于使用XLS模板编写Excel文件,以及使用XML配置将Excel中的数据读取到Java对象中。如果您试图创建hyerlink,jXLS没有低级别的excel操作能力。但是你可以使用免费的图书馆。此代码创建指向该任务单元格的超链接,如下所示Java JXLS-如何在工作簿中创建Excel工作表的超链接,java,jxls,Java,Jxls,我正在尝试使用创建Excel工作簿。我想要一个文本超链接,用于在工作簿中的工作表中导航。我在网上找不到任何有用的信息。请给出任何有助于解决问题的想法或超链接。Thank是一个小型且易于使用的Java库,用于使用XLS模板编写Excel文件,以及使用XML配置将Excel中的数据读取到Java对象中。如果您试图创建hyerlink,jXLS没有低级别的excel操作能力。但是你可以使用免费的图书馆。此代码创建指向该任务单元格的超链接,如下所示 //creating the 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);
jxls支持参数化公式,您可以 使用具有如下公式的单元格 =超链接(“单击我”) 在单元格中使用 =超链接(${paramLink},${paramDisplay}) 将参数传递到jxls上下文,它们将作为正确的链接呈现
老问题,但另一种可能的解决方案是使用JXLS 2+和
POI转换器。它有一个名为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
是上下文中相应的变量
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);