簡體   English   中英

超鏈接到另一個工作簿上的單元格-EPPlus

[英]Hyperlink to a cell on another workbook - EPPlus

我想將超鏈接添加到另一個工作簿的單元格。 我可以引用整個文件,但是在引用特定單元格時遇到問題。

生成的超鏈接格式正確,因為當我單擊“修改超鏈接”,然后在生成的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);

我將非常感謝您提供的任何幫助,因為我在這個愚蠢的問題上一無所獲。

我試過使用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");

因此,我找到了答案,通過添加超鏈接引用和想要在單元格上顯示的值,可以如下使用單元格的Formula屬性來做到這一點:

resultSheet.Cells[currentRow, 10].Formula = "HYPERLINK(\"" + filePath + "#'" + sheetName + "'!" + rowLetter + rowNumber + "\",\"" + "message to show on the cell" + "\")";
resultSheet.Cells[currentRow, 10].Calculate();

官方方法是使用新的ExcelHyperLink(),請參見

ws.Cells["K13"].Hyperlink = new ExcelHyperLink("Statistics!A1", "Statistics");

https://github.com/JanKallman/EPPlus/wiki/Formatting-and-styling

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM