如何使用 C# 在 Excel 中建立超鏈接
IronXL 使 C# 開發人員能夠在 Excel 單元格中創建各種超鏈接,包括 URL、文件路徑、電子郵件地址和單元格引用,而無需使用 Interop,從而簡化了向電子表格添加交互式導航的過程。
Excel 超連結提供工作簿內位置、不同文件、網頁或電子郵件地址的可點擊引用。 它們增強了導航功能,使用戶能夠快速存取相關資訊和外部資源。 超連結可以建立互動式且使用者友好的電子表格,方便使用者輕鬆存取其他資料或外部內容。
IronXL 無需在 .NET C# 中使用 Interop,即可建立 URL 超連結、從本機和 FTP(檔案傳輸協定)檔案系統開啟外部檔案、電子郵件地址、儲存格位址和已定義名稱儲存格。 在商業應用程式中以程式設計方式處理 Excel 檔案時,此功能至關重要。
快速入門:只需幾個步驟即可使用 IronXL 新增超連結
本範例展示了使用 IronXL 為 Excel 儲存格新增網頁超連結是多麼容易。 只需幾行程式碼——建立工作簿、設定儲存格值、分配超連結並儲存——即可在電子表格中建立互動式連結。 如需更全面的 Excel 操作,請參閱我們使用 C# 編輯 Excel 檔案的指南。
立即開始使用 NuGet 建立 PDF 檔案:
使用 NuGet 套件管理器安裝 IronXL
複製並運行這段程式碼。
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");部署到您的生產環境進行測試
最簡工作流程(5個步驟)
- 下載用於建立超連結的 C# 庫。
- 載入現有 Excel 文件或建立新文件
- 建立指向網站 URL 的超鏈接
- 建立指向單元格的超鏈接,或在同一工作表內或跨工作表定義名稱。
- 使用
Hyperlink屬性建立超連結以開啟檔案和電子郵件。
我需要哪些先決條件?
在實現超連結之前,請確保您的 .NET 專案中已安裝 IronXL。 您還需要對 IronXL 中選擇範圍和管理工作表有一定的了解。 該程式庫支援 .NET Framework 4.6.2+ 和 .NET Core/5/6/7/8+,使其與大多數現代 .NET 應用程式相容。
如何在Excel單元格中建立URL超連結?
Cell類別中存在Hyperlink屬性。 worksheet["A1"]代碼傳回一個Range物件; 使用First方法存取範圍內的第一個儲存格。
或者,使用GetCellAt方法直接存取單元格,從而可以直接存取Hyperlink屬性。 當處理電子表格中的特定單元格座標時,這種方法特別有用。
讓我們來看一個建立連結超連結的例子。 HTTP 和 HTTPS 協定均受支持,可讓您連結至安全性和非安全性的 Web 資源。 在建立超連結時,可以考慮將其與單元格格式結合使用,使其在視覺上與普通文字區分開來。
使用GetCellAt方法選擇未修改的單元格會拋出System.NullReferenceException 異常:"物件引用未設定為物件的實例。"
:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-link-hyperlink.csusing 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");點擊創建的超連結會發生什麼?
當您點擊使用 IronXL 建立的超連結時,Excel 會提示您在預設 Web 瀏覽器中開啟連結的 URL。 儲存格在新增超連結功能的同時保持其原始值,讓您在啟用導覽的同時保留描述性文字。 無論您是在本機處理 Excel 檔案還是部署到雲端環境,此行為都保持一致。

如何在不同的工作表之間建立超連結?
若要建立指向相同工作表中某個儲存格的超鏈接,請使用該儲存格的位址,例如Z20 。 若要建立跨工作表的超鏈接,請使用worksheetName!address address 。 例如, Sheet2!A1 。 在建立包含多個資料表的複雜 Excel 報表時,這種跨工作表連結功能至關重要。
已定義名稱的儲存格可以具有工作簿(全域)範圍或工作表範圍。 若要建立指向同一工作表中已定義名稱或工作簿範圍內已定義名稱的超鏈接,請直接指定名稱。 若要為指定名稱且作用域為不同工作表的超連結建立超鏈接,請依上述方式指定工作表名稱。 例如, Sheet2!Iron 。 了解更多關於使用命名區域進行進階 Excel 自動化操作的資訊。
:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-hyperlink-across-worksheet.csusing 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");為什麼超連結要使用命名範圍?
命名範圍提供了更易於維護的超鏈接,即使工作表結構發生變化,這些超鏈接仍然有效。 當您重新命名或移動儲存格時,指向已命名區域的超連結會自動更新,從而減少 Excel 應用程式中的斷鍊。 這種方法在資料位置可能發生變化的動態報表中尤其有價值。

工作簿範圍和工作表範圍有什麼不同?
工作簿作用域(全域)命名區域可從工作簿中的任何工作表訪問,而工作表作用域名稱只能在其特定工作表中存取。 在建立指向命名區域的超連結時,工作簿範圍名稱提供了更大的靈活性,但工作表範圍名稱為特定於工作表的資料提供了更好的封裝。 在複雜的 Excel 應用程式中管理多個工作表時,這種區別至關重要。
如何建立檔案、FTP 和電子郵件超連結?
除了前面提到的超連結類型外,IronXL 還支援建立 FTP、檔案和電子郵件超連結。 這些特殊的超連結類型擴展了Excel的自動化功能,使其不再局限於簡單的網頁連結。
- FTP:以
ftp://開頭 - 指向 FTP 伺服器上檔案的鏈接 - 檔案:指定以
file:///開頭的絕對路徑 - 指向本地或網路檔案的鏈接 - 電子郵件:以
mailto:開頭 - 建立可點選的電子郵件地址
@@--括號-i-OPEN--@@FTP 和檔案超連結都需要使用絕對路徑。 @@--括號-CLOSE--@@
:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-other-hyperlink.csusing 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");何時應該使用文件超鏈接,何時應該使用 FTP 超鏈接?
對於可透過 Windows 檔案系統存取的本機檔案或網路共用,請使用檔案超連結( file:/// )。 FTP 超連結 ( ftp:// ) 非常適合連結到 FTP 伺服器上的文件,尤其是在企業環境中,文件儲存在專用檔案伺服器上。 使用 FTP 連結時請考慮安全性隱患,因為它們可能會以明文形式傳輸憑證。

點擊郵件連結後會打開哪個郵件用戶端?
當使用者在 Excel 中點擊 mailto 連結時,他們的預設電子郵件用戶端會開啟新郵件,郵件內容已預先傳送到指定的電子郵件地址。 這適用於配置為系統預設程式的 Outlook、Thunderbird 和基於 Web 的電子郵件用戶端。 You can enhance mailto links with subject lines and body text using standard mailto syntax: code>mailto:example@gmail.com?subject=Hello&body=Message.
如何從Excel儲存格中刪除超連結?
To remove a hyperlink, invoke the RemoveHyperlink method. 可以從單元格物件存取此方法。 在清理資料或將連結報告轉換為靜態文件時,刪除超連結非常有用。
:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-remove-hyperlink.csusing IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("setLinkHyperlink.xlsx");
WorkSheet 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();
}
}這種方法在清理匯入資料或準備分發的電子表格時特別有用,因為在這些情況下,超連結可能不合適。 如需了解更多進階細胞操作技術,請查閱我們關於選擇和使用範圍的指南。
常見問題解答
如何使用 C# 在 Excel 中建立超連結?
使用 IronXL.Excel 存取儲存格並設定其 Hyperlink 屬性,即可輕鬆在 Excel 中建立超連結。只需載入或建立工作簿,使用 GetCellAt() 或工作表索引器取得所需的儲存格,然後將 URL 字串指定到儲存格的 Hyperlink 屬性。IronXL.Excel 會自動處理所有複雜的 Excel 格式化,而不需要 Microsoft Interop。
在 Excel 單元格中可以建立哪些類型的超連結?
IronXL 支援建立各種類型的超連結,包括:外部網站的 Web URL、開啟本機或 FTP 檔案的檔案路徑、帶有 mailto 連結的電子郵件地址、同一工作表內的儲存格引用,以及定義名稱儲存格的引用。所有這些超連結類型都可以在 IronXL 中使用相同的 Hyperlink 屬性來實現。
我是否需要安裝 Microsoft Office 才能在 Excel 檔案中加入超連結?
不,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 可讓您在新的和現有的 Excel 檔案中加入超連結。您可以使用 WorkBook.Load() 載入現有的工作簿,存取任何儲存格或範圍,並新增超連結,而不會影響試算表中的其他內容或格式。在新增互動式元素的同時,該函式庫會保留現有的資料。
如何存取特定儲存格以新增超連結?
IronXL 提供了多種存取儲存格以加入超連結的方式。您可以使用具有行和列索引的 GetCellAt(),或使用具有工作表["A1"]等儲存格位址的工作表索引器。對於範圍,可使用 First 方法取得第一個儲存格。該函式庫也支援選擇範圍以進行批次超連結操作。






