我想添加一个指向另一个工作簿的单元格的超链接。我可以引用整个文件,但在引用特定单元格时遇到问题。
生成的超链接格式正确,因为当我在生成的Excel文件上单击修改超链接然后确定(不修改它)时,超链接开始工作。
我已经尝试过Uri的所有构造函数,我试图计算单元格值,但我找不到解决方案。这是我的代码。
这有效:
resultSheet.Cells[currentRow, 10].Hyperlink = new Uri(message.myReference.filePath, UriKind.Absolute);
在生成的Excel文件中单击修改然后确定之前,这不起作用。
resultSheet.Cells[currentRow, 10].Hyperlink = new Uri(message.myReference.filePath + "#'" + message.myReference.sheetName + "'!" + "A" + message.myReference.cellRow, UriKind.Absolute);
我真的很感激任何帮助,因为我有点坚持这个愚蠢的问题。
答案 0 :(得分:0)
我尝试过使用Interop库,这对我有用。 也许你可以使用类似的逻辑或想法。
Range whereHyperLinkWillBe = activeWorksheet.get_Range("O3", Type.Missing);
string filePathOfHyerlinkDestination = "C:\\Users\\Desktop\\HyerlinkFile.xlsx";
string hyperlinkTargetAddress = "Sheet1!B4";
activeWorksheet.Hyperlinks.Add(whereHyperLinkWillBe, filePathOfHyerlinkDestination ,hyperlinkTargetAddress, "Hyperlink Sample", "Hyperlink Title");
答案 1 :(得分:0)
所以我找到了答案,我能够通过使用单元格的公式属性来实现,如下所示,添加超链接引用和我想要在单元格上显示的值:
resultSheet.Cells[currentRow, 10].Formula = "HYPERLINK(\"" + filePath + "#'" + sheetName + "'!" + rowLetter + rowNumber + "\",\"" + "message to show on the cell" + "\")";
resultSheet.Cells[currentRow, 10].Calculate();
答案 2 :(得分:0)
官方方法是使用新的ExcelHyperLink(),请参见
ws.Cells["K13"].Hyperlink = new ExcelHyperLink("Statistics!A1", "Statistics");
https://github.com/JanKallman/EPPlus/wiki/Formatting-and-styling