2017-04-27 126 views
2

如何在excel中打开一个超链接,该链接打开一个angularjs网页(包含一个磅)?Excel英文超链接

...根据微软Office文档,我们不能使用超链接磅字符: https://support.microsoft.com/en-us/help/202261/you-cannot-use-a-pound-character-in-a-file-name-for-a-hyperlink-in-an-office-program

当我试图建立这样的联系,当默认浏览器是Chrome浏览器不工作(但当默认浏览器是iexplorer时工作)。

(在Chrome中的链接的 '#' 主机:端口/#/书籍/ 1234变化:主机:端口/%20-%20 /书籍/ 1234

String address = "localhost:8080/#/books/1234"; 
String title = "a book"; 
CellStyle hlinkstyle = workbook.createCellStyle(); 
Font hlinkfont = workbook.createFont(); 
hlinkfont.setUnderline(XSSFFont.U_SINGLE); 
hlinkfont.setColor(HSSFColor.BLUE.index); 
hlinkstyle.setFont(hlinkfont); 
XSSFHyperlink link = (XSSFHyperlink) createHelper.createHyperlink(Hyperlink.LINK_URL); 
link.setAddress(address); 
cell.setHyperlink(link); 
cell.setCellStyle(hlinkstyle); 
cell.setCellValue(title); 
+0

你能证明你的链接 – shakespeare

+0

在原来的问题 –

+1

更新我使用Apache的POI版本3.15和Chrome浏览器的最新版本,我没有在超链接英镑符号的一个问题。 你可以添加一些代码的问题? –

回答

0

尝试在localhost:8080/#/books/1234前面添加http://

这个代码不使用Apache的POI,但它工作在Excel中创建一个超链接。它确实工作,如果我没有在地址前使用http://

string fileName = @"C:/Users/eric.sundquist/Desktop/book2.xlsx"; 
string address = "http://localhost:8889/#/sign-in"; 
string title = "a book"; 

Application excel = new Application(); 
Workbook file = excel.Workbooks.Open(fileName); 

Worksheet sheet = (Worksheet)file.Worksheets[1]; 
Range range = sheet.get_Range("A1", "A1"); 

range[1, 1].Hyperlinks.Add(range, address, Type.Missing, address, title); 
file.Save(); 
file.Close(); 
+0

我加了http://但仍然无法工作。再次参阅上面附上的ms-office文档链接。重现此确保您的默认浏览器是iexplorer。 –

+0

然后我想知道它是否是POI库的问题。我将默认浏览器更改为IE,重新执行此代码,但仍然没有任何问题。我的代码只是使用C#Interop.Excel库。它似乎并没有取代链接中的'#'。它必须是你的'XSSFHyperlink'或你的'createHelper',它正在改变''''为' - '。 – HaveSpacesuit