gpt4 book ai didi

java - 无法将字符串导出为 .xlsx 文件中的超链接 - Java 8 和 POI 3.17

转载 作者:行者123 更新时间:2023-12-02 01:06:34 25 4
gpt4 key购买 nike

我尝试构建一个 Excel 文件,其中第一个单元格每次都是超链接。我在 Spring Boot API 中使用 Java 8 和 POI 3.17。 Excel 导出工作正常,但问题是,第一个单元格现在完全是空的。我没有收到任何警告或错误或其他内容。有问题的代码:

  final XSSFWorkbook wb = exportHelperService.loadWorkbookTemplate(path);
XSSFHyperlink url_link = wb.getCreationHelper().createHyperlink(HyperlinkType.URL) // definition for Hyperlink


fillWorkbook(....) { // here i gonna fill my workbook - everything works fine

url_link.setAddress("http://www.google.de/"); // definition of url address - checked that its not empty

exportHelperService.insertHyperlinkValue(url_link, "Cell_1", row); // calls function that writes into the cell 1 - for all other cells there is NO problem

// ... code that works fine ...

}


public void insertHyperlinkValue(XSSFHyperlink value, String columName, Row row) {
if (value != null) {
Cell cell = row.getCell(columnIndexMap.get(columName), CREATE_NULL_AS_BLANK);
cell.setHyperlink(value); // <--- HERE IS THE PROBLEM
}
}

我测试了 insertHyperlinkValue() 函数以仅打印字符串并且它工作正常,但是对于超链接它不想工作...我的 false 在哪里?非常感谢您的每一个回答!!!

最佳答案

单元格已包含链接,只是没有文本/样式。

XSSFWorkbook wb = new XSSFWorkbook();
XSSFHyperlink link = wb.getCreationHelper().createHyperlink(HyperlinkType.URL);
XSSFCellStyle hlinkstyle = wb.createCellStyle();
XSSFFont hlinkfont = wb.createFont();
hlinkfont.setUnderline(XSSFFont.U_SINGLE);
hlinkfont.setColor(IndexedColors.BLUE.index);
hlinkstyle.setFont(hlinkfont);
link.setAddress("http://www.google.de/");
Sheet s = wb.createSheet();
Row r = s.createRow(0);
Cell c = r.createCell(0);
c.setHyperlink(link);
c.setCellStyle(hlinkstyle); //<-- make it look like link
c.setCellValue(link.getAddress()); // <-- important
wb.write(new FileOutputStream(new File("D:\\Test\\hyperlink.xlsx")));
wb.close();

您只需设置单元格文本和样式即可。

关于java - 无法将字符串导出为 .xlsx 文件中的超链接 - Java 8 和 POI 3.17,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59968069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com