2017-04-27 119 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