【问题标题】:Excel hyperlink with a pound带磅的 Excel 超链接
【发布时间】:2017-09-24 17:37:35
【问题描述】:

如何在excel中创建一个超链接,打开一个angularjs网页(包含一个磅)?

...根据 ms-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 中,链接 host:port/#/books/1234 中的“#”更改为:host:port/%20-%20/books/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);

【问题讨论】:

  • 你能显示你的链接吗
  • 在原问题中更新
  • 我使用的是 apache-poi 3.15 版和最新版本的 chrome 浏览器,我对超链接中的磅符号没有问题。您可以在问题中添加一些代码吗?
  • 问题已更新

标签: angularjs excel hyperlink apache-poi ms-office


【解决方案1】:

尝试在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();

【讨论】:

  • 我添加了 http:// 但仍然无法正常工作。再次查看我在上面附加的 ms-office 文档链接。要重现此问题,请确保您的默认浏览器是 iexplorer。
  • 我想知道这是否是 POI 库的问题。我将默认浏览器更改为 IE,重新运行此代码,但仍然没有任何问题。我的代码只是使用 C# Interop.Excel 库。它似乎没有替换链接中的#。必须是您的XSSFHyperlink 或您的createHelper# 更改为` - `。
猜你喜欢
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 2015-03-18
  • 2016-10-16
  • 2018-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多