Reputation: 299
I have a file which is stored in a server, the path is like: \\myserver\folder\myfile.txt
How to put this SMB address in the cell with hyperlink?
Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_FILE);
link.setAddress("What to write here?");
When I used following code:
link.setAddress("\\\\myserver\\folder\\myfile.txt");
It returns error:
Caused by: java.net.URISyntaxException: Illegal character in path at index 0: \\myserver\folder\myfile.txt
at java.net.URI$Parser.fail(Unknown Source)
at java.net.URI$Parser.checkChars(Unknown Source)
at java.net.URI$Parser.parseHierarchical(Unknown Source)
at java.net.URI$Parser.parse(Unknown Source)
at java.net.URI.<init>(Unknown Source)
at org.apache.poi.xssf.usermodel.XSSFHyperlink.validate(XSSFHyperlink.java:240)
... 2 more
Upvotes: 0
Views: 635
Reputation: 3824
What you're referencing is a UNC path. I don't know how UNC relates to SMB, but I successfully got the following code to work
CreationHelper createHelper = workbook.getCreationHelper();
Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_FILE);
link.setAddress((new File("\\\\myserver\\folder\\myfile.txt")).toURI().toString());
cell.setHyperlink(link);
Upvotes: 3