我正在尝试在任何.xlsx文件的单元格内容中超链接.png文件。以下是代码的一部分,它显示了java.net.URISyntaxException异常(似乎是由于地址中使用了斜线)。但是,更改link.setAddress(“
test.png”)不会显示任何错误,但不能解决我的目的。请帮我。
public static void main(String[]args) throws Exception{
XSSFWorkbook wb = new XSSFWorkbook();
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);
XSSFSheet sheet = wb.createSheet("Hyperlinks");
XSSFCell cell = sheet.createRow(1).createCell((short)0);
cell.setCellValue("File Link");
Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_FILE);
link.setAddress("H:\\Selenium\\XL\\src\\santosh\\xlwork\\test.png");
cell.setHyperlink(link);
cell.setCellStyle(hlink_style);
FileOutputStream out = new FileOutputStream("hyperlinks.xlsx");
wb.write(out);
out.close();
}
最终,我需要做的是将屏幕快照与任何单元格进行超链接。屏幕快照目录将在Eclipse工作区以外的任何位置。
终于,我完成了这项工作。感谢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 screenshot
public 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 screenshot
public 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/Screenshot/TestResult/Test.png
它工作正常。这两个URL都是正确的,并且可以在浏览器中打开相同的文件,甚至可以在excel文件中手动使用超链接来打开相同的文件,其工作正常。我不知道为什么它在Apache
POI中显示异常,这可能是一个错误。
有什么想法如何添加一个超链接在一个网页上使用这个库? 我发现了这个问题:如何使用pdfbox在内容中设置超链接,但这不起作用。 我只想在pdf文件的第一页添加一个超链接。 我更喜欢在页面底部添加以URL为中心的超链接。但目前任何建议都有帮助
但我会重复两次几乎相同的比较,这看起来更糟糕。你们怎么处理?
链接地址/虚地址/物理地址/加载地址以及edata/end/text的含义 链接脚本简介 ucore kernel各个部分由组成kernel的各个.o或.a文件构成,且各个部分在内存中地址位置由ld工具根据kernel.ld链接脚本(linker script)来设定。ld工具使用命令-T指定链接脚本。链接脚本主要用于规定如何把输入文件(各个.o或.a文件)内的section放入输出文件(lab2
我得到了一些帮助,所以我有一些代码可以使用,但我似乎无法理解这一点,所以,我正在寻求更多的帮助。我正在处理的任务是在本地网页上显示html文件作为链接,并自动更新,因为每天都会有一个新文件夹(插入到同一根文件夹)和一个新文件。 我的问题是访问文件夹和选择的html文件这总是被称为main.html.文件夹有一个不同的名称因为它有一个日期在名称但html文件总是被称为main.html.我想更新每日
运行播放后,当我卷曲服务器时,我看不到index.html文件中的内容。有人能帮我玩游戏吗? 名称:安装webserver并链接到文件夹主机:prod任务: 名称:创建目录文件:路径:/web_hosting状态:目录设置类型:httpd_sys_content_t模式:0775 名称:install yum:name:httpd state:present 名称:配置服务服务:名称:httpd状
问题内容: 我正在制作一个在Linux shell中运行的程序,该程序接受一个参数(目录),并显示目录中的所有文件及其类型。 输出应如下所示: 如果没有参数,它将使用当前目录。这是我的代码: 由于某种原因未显示文件类型。我不太确定该怎么办,有什么建议吗? 问题答案: 是一项速度优化,可在支持时节省通话费用。 正如(3)手册页所指出的那样,并非所有文件系统都在该字段中返回真实信息(通常是因为读取索引