如何使用 C# 在 Excel 中建立超連結
IronXL 讓 C# 開發人員能夠在 Excel 儲存格中建立各種超連結,包括 URL、檔案路徑、電子郵件地址和儲存格參照,且無需使用 Interop,從而簡化在試算表中加入互動式導覽的功能。
Excel 超連結可提供可點擊的參考連結,指向工作簿內的特定位置、其他檔案、網頁或電子郵件地址。 這些工具能提升導覽體驗,讓使用者能快速存取相關資訊與外部資源。 超連結可建立互動且易於使用的試算表,便於輕鬆存取額外資料或外部內容。
IronXL 允許為 URL 建立超連結,並能開啟來自本地及 FTP(檔案傳輸協定)檔案系統的外部檔案、電子郵件地址、儲存格位址,以及已定義名稱的儲存格,且無需在 .NET C# 中使用 Interop。 此功能對於在商業應用程式中透過程式化方式處理 Excel 檔案至關重要。
快速入門:只需幾個步驟,即可使用 IronXL 加入超連結
此範例展示了使用 IronXL 在 Excel 儲存格中新增網頁超連結是多麼簡單。 只需幾行代碼——建立工作簿、設定儲存格值、指派超連結並儲存——您就能在試算表中建立一個互動式連結。 若需更全面的 Excel 操作指南,請參閱我們關於使用 C# 編輯 Excel 檔案的指南。
-
using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronXL.Excel
PM > Install-Package IronXL.Excel -
請複製並執行此程式碼片段。
IronXl.WorkBook workbook = IronXl.WorkBook.Create(IronXl.ExcelFileFormat.XLSX); workbook.DefaultWorkSheet.GetCellAt(0, 0).Value = "Visit IronXL Docs"; workbook.DefaultWorkSheet.GetCellAt(0, 0).Hyperlink = "https://ironsoftware.com"; workbook.SaveAs("hyperlink_quick.xlsx"); -
部署至您的生產環境進行測試
立即透過免費試用,在您的專案中開始使用 IronXL
簡化工作流程(5 個步驟)
- 下載用於建立超連結的 C# 函式庫
- 載入現有的 Excel 檔案或建立新的檔案
- 建立指向網站 URL 的超連結
- 建立指向儲存格的超連結,或在同一工作表內或跨工作表定義名稱
- 使用
Hyperlink屬性建立超連結以開啟檔案和電子郵件
我需要哪些先決條件?
在實作超連結之前,請確保您的 .NET 專案中已安裝 IronXL。 您還需具備 IronXL 中選取範圍及管理工作表的基本知識。 此函式庫支援 .NET Framework 4.6.2 以上版本以及 .NET Core 5/6/7/8 以上版本,使其與大多數現代 .NET 應用程式相容。
如何在 Excel 儲存格中建立 URL 超連結?
Hyperlink 屬性存在於 Cell 類別中。 worksheet["A1"] 程式碼會傳回一個 Range 物件; 使用 First 方法存取範圍中的第一個儲存格。
或者,您可以使用 GetCellAt 方法直接存取該儲存格,藉此直接存取 Hyperlink 屬性。 此方法在處理試算表中的特定儲存格座標時特別有用。
讓我們來探討建立連結超連結的範例。 同時支援 HTTP 與 HTTPS 協定,讓您能夠連結至安全與非安全的網路資源。 建立超連結時,請考慮結合儲存格格式設定,使其在視覺上與一般文字有所區別。
GetCellAt 方法選取未修改的儲存格時,將引發 System.NullReferenceException:'物件參考未設定為物件的實例。':path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-link-hyperlink.cs
using IronXL;
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Modify the cell's property
workSheet["A1"].Value = "Link to ironpdf.com";
// Set hyperlink at A1 to https://ironpdf.com/
workSheet.GetCellAt(0, 0).Hyperlink = "https://ironpdf.com/";
workBook.SaveAs("setLinkHyperlink.xlsx");
Imports IronXL
Private workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Modify the cell's property
Private workSheet("A1").Value = "Link to ironpdf.com"
' Set hyperlink at A1 to https://ironpdf.com/
workSheet.GetCellAt(0, 0).Hyperlink = "https://ironpdf.com/"
workBook.SaveAs("setLinkHyperlink.xlsx")
點擊生成的超連結後會發生什麼?
當您點擊使用 IronXL 建立的超連結時,Excel 會提示您在預設的網頁瀏覽器中開啟該連結的 URL。 該儲存格在新增超連結功能時,會保留原始值,讓您既能保留說明文字,又能實現導航功能。 無論您是在本地端處理 Excel 檔案,還是部署至雲端環境,此行為皆保持一致。
如何在不同工作表之間建立超連結?
若要建立指向同一工作表內某個儲存格的超連結,請使用該儲存格的位址,例如 Z20。 若要在工作表之間建立超連結,請使用 worksheetName!address 這種格式。 例如,Sheet2!A1。 在建立包含多個工作表的複雜 Excel 報表時,此跨工作表連結功能至關重要。
已定義的名稱儲存格可具有工作簿(全域)或工作表範圍。 若要建立指向同一工作表內已定義名稱,或工作簿範圍內已定義名稱的超連結,請直接指定該名稱。 若要在不同工作表上為具有工作表範圍的定義名稱建立超連結,請如上所述指定工作表名稱。 例如,Sheet2!Iron。 進一步了解如何運用命名範圍進行進階 Excel 自動化。
:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-hyperlink-across-worksheet.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet1 = workBook.CreateWorkSheet("Sheet1");
WorkSheet workSheet2 = workBook.CreateWorkSheet("Sheet2");
// Create workbook(global) define name
workSheet1["D5"].SaveAsNamedRange("Iron", true);
// Create worksheet define name
workSheet2["D10"].SaveAsNamedRange("Hello", false);
// --== Within the same worksheet ==--
// Set hyperlink to cell Z20
workSheet1["A1"].Value = "Z20";
workSheet1["A1"].First().Hyperlink = "Z20";
// Set hyperlink to define name "Iron"
workSheet1["A2"].Value = "Iron";
workSheet1["A2"].First().Hyperlink = "Iron";
// --== Across worksheet ==--
// Set hyperlink to cell A1 of Sheet2
workSheet1["A3"].Value = "A1 of Sheet2";
workSheet1["A3"].First().Hyperlink = "Sheet2!A1";
// Set hyperlink to define name "Hello" of Sheet2
workSheet1["A4"].Value = "Define name Hello of Sheet2";
workSheet1["A4"].First().Hyperlink = "Sheet2!Hello";
workBook.SaveAs("setHyperlinkAcrossWorksheet.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
為何要使用命名範圍來建立超連結?
命名範圍可提供更易於維護的超連結,即使工作表結構重新調整後仍能保留。 當您重新命名或移動儲存格時,指向命名範圍的超連結會自動更新,從而減少 Excel 應用程式中的斷鏈。 此方法在資料位置可能變動的動態報表中尤為實用。
工作簿範圍與工作表範圍有何區別?
工作簿範圍(全域)的命名範圍可在工作簿內的任何工作表中存取,而工作表範圍的命名範圍則僅限於其特定工作表內存取。 建立指向命名範圍的超連結時,工作簿範圍名稱雖提供較高彈性,但工作表範圍名稱對於工作表專屬資料而言,能提供更好的封裝效果。 在管理複雜 Excel 應用程式中的多個工作表時,此區別至關重要。
如何建立檔案、FTP 及電子郵件超連結?
除了前述的超連結類型外,IronXL 亦支援建立 FTP、檔案及電子郵件超連結。 這些專用的超連結類型,能將您的 Excel 自動化功能擴展至簡單的網頁連結之外。
- FTP:從
ftp://開始 - 連結至 FTP 伺服器上的檔案 - 檔案:指定以
file:///開頭的絕對路徑 - 連結至本機或網路檔案 - 電子郵件:以
mailto:開頭 - 建立可點擊的電子郵件地址
:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-other-hyperlink.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Set hyperlink to open file sample.xlsx
workSheet["A1"].Value = "Open sample.xslx";
workSheet["A1"].First().Hyperlink = "ftp://C:/Users/sample.xlsx";
// Set hyperlink to open file sample.xlsx
workSheet["A2"].Value = "Open sample.xslx";
workSheet["A2"].First().Hyperlink = "file:///C:/Users/sample.xlsx";
// Set hyperlink to email example@gmail.com
workSheet["A3"].Value = "example@gmail.com";
workSheet["A3"].First().Hyperlink = "mailto:example@gmail.com";
workBook.SaveAs("setOtherHyperlink.xlsx");
Imports IronXL
Imports System.Linq
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Set hyperlink to open file sample.xlsx
workSheet("A1").Value = "Open sample.xslx"
workSheet("A1").First().Hyperlink = "ftp://C:/Users/sample.xlsx"
' Set hyperlink to open file sample.xlsx
workSheet("A2").Value = "Open sample.xslx"
workSheet("A2").First().Hyperlink = "file:///C:/Users/sample.xlsx"
' Set hyperlink to email example@gmail.com
workSheet("A3").Value = "example@gmail.com"
workSheet("A3").First().Hyperlink = "mailto:example@gmail.com"
workBook.SaveAs("setOtherHyperlink.xlsx")
何時該使用檔案超連結,何時該使用 FTP 超連結?
對於可透過 Windows 檔案系統存取的本地檔案或網路共用資料夾,請使用檔案超連結 (file:///)。 FTP 超連結 (ftp://) 非常適合用於連結 FTP 伺服器上的檔案,特別是在 Enterprise 環境中,文件通常儲存於專用的檔案伺服器上。 使用 FTP 連結時請考量安全性影響,因其可能以明文傳輸憑證。
點擊 Mailto 連結時會開啟哪個電子郵件客戶端?
當使用者在 Excel 中點擊 mailto 連結時,系統會開啟預設的電子郵件客戶端,並預先填入指定電子郵件地址的新郵件。 此功能適用於 Outlook、Thunderbird 以及設定為系統預設的網頁式電子郵件客戶端。 您可以使用標準 mailto 語法 mailto:example@gmail.com?subject=Hello&body=Message,為 mailto 連結添加主旨和內文。
如何從 Excel 儲存格中移除超連結?
若要移除超連結,請呼叫 RemoveHyperlink 方法。 可透過 cell 物件存取此方法。 在清理資料或將連結報告轉換為靜態文件時,移除超連結會很有幫助。
:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-remove-hyperlink.cs
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("setLinkHyperlink.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Remove hyperlink
workSheet["A1"].First().RemoveHyperlink();
workBook.SaveAs("removeHyperlink.xlsx");
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Load("setLinkHyperlink.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Remove hyperlink
workSheet("A1").First().RemoveHyperlink()
workBook.SaveAs("removeHyperlink.xlsx")
移除超連結會刪除儲存格內容嗎?
不,移除超連結並不會影響儲存格的數值與格式。 僅移除超連結功能,保留顯示文字內容。 這使得在移除超連結時不會造成資料遺失,這在轉換試算表檔案類型或準備文件進行歸檔時尤為重要。
如何一次移除多個超連結?
若要高效移除多個超連結,請遍歷一組儲存格,或使用 LINQ 處理包含超連結的儲存格:
// Remove all hyperlinks in column A
for (int i = 1; i <= 10; i++)
{
var cell = workSheet.GetCellAt(i, 0);
if (cell != null && !string.IsNullOrEmpty(cell.Hyperlink))
{
cell.RemoveHyperlink();
}
}
// Remove all hyperlinks in column A
for (int i = 1; i <= 10; i++)
{
var cell = workSheet.GetCellAt(i, 0);
if (cell != null && !string.IsNullOrEmpty(cell.Hyperlink))
{
cell.RemoveHyperlink();
}
}
' Remove all hyperlinks in column A
For i As Integer = 1 To 10
Dim cell = workSheet.GetCellAt(i, 0)
If cell IsNot Nothing AndAlso Not String.IsNullOrEmpty(cell.Hyperlink) Then
cell.RemoveHyperlink()
End If
Next
此方法特別適用於清理匯入的資料,或準備供分發使用的試算表時——在這些情境中,超連結可能並不合適。 若需更進階的儲存格操作技巧,請參閱我們關於選取範圍及處理範圍的指南。
常見問題
如何使用 C# 在 Excel 中建立超連結?
您可透過 IronXL 輕鬆在 Excel 中建立超連結,方法是存取儲存格並設定其 Hyperlink 屬性。只需載入或建立工作簿,使用 GetCellAt() 或工作表索引器取得目標儲存格,然後將 URL 字串指派給該儲存格的 Hyperlink 屬性。IronXL 會自動處理所有複雜的 Excel 格式設定,無需使用 Microsoft Interop。
在 Excel 儲存格中可以建立哪些類型的超連結?
IronXL 支援建立多種超連結類型,包括:外部網站的網址、用於開啟本地或 FTP 檔案的檔案路徑、帶有 mailto 連結的電子郵件地址、同一工作表內的儲存格參照,以及對已定義名稱儲存格的參照。所有這些超連結類型皆可透過 IronXL 中的同一 Hyperlink 屬性來實作。
要在 Excel 檔案中加入超連結,是否需要安裝 Microsoft Office?
不,IronXL 可獨立運作,無需 Microsoft Office 或 Interop 組件。此程式庫包含所有必要元件,可讓您直接在 .NET 應用程式中建立、讀取及修改帶有超連結的 Excel 檔案,因此非常適合無法安裝 Office 的伺服器環境。
哪些 .NET Framework 框架支援建立 Excel 超連結?
IronXL 支援廣泛的 .NET Framework,包括 .NET Framework 4.6.2 及更高版本,以及 .NET Core、.NET 5、6、7 和 8+。這種廣泛的相容性確保您能夠將 IronXL 的超連結功能整合到傳統應用程式和現代 .NET 專案中。
我可以為現有的 Excel 檔案新增超連結,還是只能新增超連結到新檔案?
IronXL 讓您能夠在新的或現有的 Excel 檔案中加入超連結。您可以透過 WorkBook.Load() 載入現有的工作簿,存取任何儲存格或範圍,並在不影響試算表中其他內容或格式的情況下加入超連結。此程式庫在新增互動元素的同時,會完整保留現有資料。
如何存取特定儲存格以新增超連結?
IronXL 提供多種存取儲存格以新增超連結的方式。您可以使用 GetCellAt() 並傳入列與欄索引,或使用工作表索引器搭配儲存格位址,例如 worksheet["A1"]。若要處理範圍,請使用 First 方法取得第一個儲存格。此程式庫亦支援選取範圍以進行批次超連結操作。

