使用APACHE POI XSSF添加链接文件不接受目录地址并显示java.net.URISyntaxException

使用APACHE POI XSSF添加链接文件不接受目录地址并显示java.net.URISyntaxException,第1张

使用APACHE POI XSSF添加链接文件不接受目录地址并显示java.net.URISyntaxException

终于,我完成了这项工作。感谢Gagravarr。给了我一个好主意。

boolean isDirCreated = false;//to create Screenshot directory just once//Create Screenshot Directory.public static void createDir(String ScreenshotDirAddress){    if(!isDirCreated){       File file= new File(ScreenshotDirAddress);       if (!file.exists()) file.mkdirs();    isDirCreated=true;    }}//hyperlink screenshotpublic static void hyperlinkScreenshot(XSSFCell cell, String FileAddress){    XSSFWorkbook wb=cell.getRow().getSheet().getWorkbook();    CreationHelper createHelper = wb.getCreationHelper();    CellStyle hlink_style = wb.createCellStyle();    Font hlink_font = wb.createFont();    hlink_font.setUnderline(Font.U_SINGLE);    hlink_font.setColor(IndexedColors.BLUE.getIndex());    hlink_style.setFont(hlink_font);    Hyperlink hp = createHelper.createHyperlink(Hyperlink.link_FILE);    FileAddress=FileAddress.replace("\", "/");    hp.setAddress(FileAddress);    cell.setHyperlink(hp);    cell.setCellStyle(hlink_style);}//take screenshotpublic static void takeScreenShot(WebDriver driver, String screenshotName, XSSFCell cell){    createDir();    File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);    try {        String FullAddress=System.getProperty("user.dir")+"/"+ScreenshotDirAddress+"/"+screenshotName+".png";        FileUtils.copyFile(scrFile, new File(FullAddress));        hyperlinkScreenshot(cell, FullAddress);    } catch (IOException e) {        e.printStackTrace();    }}

我遇到的主要问题与URL有关。如果我使用“ ”,则显示“ lawrArgumentException”,而将其替换为“
/”,则工作正常。我不知道确切原因,但是如果

        FileAddress=FileAddress.replace("\", "/");

被评论…显示非法参数异常。所以如果URL是

D: eclipse workspace TestApp Screenshot TestResult Test.png

将显示非法的ArgumentException。但是,如果将“ ”替换为“ /”以使其成为
D:/eclipse/workspace/TestApp/Scr​​eenshot/TestResult/Test.png

它工作正常。这两个URL都是正确的,并且可以在浏览器中打开相同的文件,甚至可以在excel文件中手动使用超链接来打开相同的文件,其工作正常。我不知道为什么它在Apache
POI中显示异常,这可能是一个错误。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5622252.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存