cao
cao

Reputation: 299

How to add SMB file link into cell?

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

Answers (1)

Chris Maggiulli
Chris Maggiulli

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

Related Questions