gpt4 book ai didi

java - 无法打开超链接文件 Apache POI

转载 作者:行者123 更新时间:2023-12-01 10:41:20 26 4
gpt4 key购买 nike

我的超链接文件位于 Whois 目录中,并且该目录和 Excel 文件位于同一父目录中。由于相对路径,我无法通过超链接访问我的文件。我需要将此 Excel 文件发送给多个收件人,而不对其选项进行任何更改。我尝试过 getPath()、getCanonicalPath() 和 getAbsolutePath() 无济于事。这是我的代码:

public void writeTheFile() throws Exception {
int rowNum=-1;
String line = "";

XSSFWorkbook workBook = new XSSFWorkbook();
XSSFSheet sheet = workBook.createSheet("Contact & Whois");
XSSFCreationHelper helper = workBook.getCreationHelper();

BufferedReader br = new BufferedReader(new FileReader(INPUT_FILE));

while((line = br.readLine()) != null) {
rowNum++;
XSSFRow currentRow=sheet.createRow(rowNum);
currentRow.createCell(0).setCellValue(line.trim());
currentRow.createCell(1);
XSSFHyperlink file_link_downloads = helper.createHyperlink(Hyperlink.LINK_FILE);
Cell cell = sheet.getRow(rowNum).getCell(1);
try {
File f = new File("Whois/" + line + ".whois.txt");
if(f.exists()) {
cell.setCellValue("[Whois]");
String path = f.getPath();
file_link_downloads.setAddress(path);
cell.setHyperlink((org.apache.poi.ss.usermodel.Hyperlink) file_link_downloads);
} else {
cell.setCellValue("-NA-");
}
} catch (Exception e) {
System.out.println("Error in setting up download link");
e.printStackTrace();
}
}

在 Windows 上,路径逐字保留在另一台计算机上。

最佳答案

Excel 从当前文件位置设置相对链接。因此,您必须检查文件是否存在,然后设置相对路径。

示例:

Hyperlink hyperlink = creationHelper.createHyperlink(Hyperlink.LINK_FILE);
String relativePath = "../parentdir/fileToLink.txt";
hyperlink.setAddress(relativePath);
hyperlink.setLabel("Link to file");
cell.setHyperlink(hyperlink);
cell.setCellValue("Link to file");
cell.setCellType(Cell.CELL_TYPE_STRING);

如果 Excel 文件与链接文件位于同一目录中,只需将链接指定为 hyperlink.setAddress("fileToLink.txt")

关于java - 无法打开超链接文件 Apache POI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34399911/

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