Jak tworzyć hiperłącza w programie Excel przy użyciu języka C#

Jak tworzyć hiperłącza w Excelu z C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL umożliwia programistom C# tworzenie różnych hiperłączy w komórkach Excela, w tym adresów URL, ścieżek plików, adresów e-mail i odwołań do komórek bez użycia Interop, upraszczając proces dodawania interaktywnej nawigacji do arkuszy kalkulacyjnych.

Hiperłącza w programie Excel zapewniają klikalne odniesienia do miejsc w skoroszycie, różnych plików, stron internetowych lub adresów e-mail. Ułatwiają one nawigację, umożliwiając szybki dostęp do powiązanych informacji i zasobów zewnętrznych. Hiperłącza tworzą interaktywne i przyjazne dla użytkownika arkusze kalkulacyjne, ułatwiając dostęp do dodatkowych danych lub treści zewnętrznych.

IronXL umożliwia tworzenie hiperłączy do adresów URL, otwieranie plików zewnętrznych zarówno z lokalnych, jak i FTP (File Transfer Protocol) systemów plików, adresów e-mail, adresów komórek oraz zdefiniowanych nazw komórek bez użycia Interop w .NET C#. Ta funkcjonalność jest niezbędna podczas pracy z plikami Excel za pomocą kodu w aplikacjach biznesowych.

Szybki start: Dodaj hiperłącze za pomocą IronXL w zaledwie kilku krokach

Ten przykład pokazuje, jak łatwo jest dodać hiperłącze internetowe do komórki programu Excel za pomocą IronXL. Wystarczy kilka wierszy — utwórz skoroszyt, ustaw wartość komórki, przypisz hiperłącze i zapisz — a w arkuszu kalkulacyjnym pojawi się interaktywne łącze. Aby uzyskać bardziej kompleksowe informacje na temat obsługi programu Excel, zapoznaj się z naszym przewodnikiem dotyczącym edycji plików Excel w języku C#.

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXl.Excel
  2. Skopiuj i uruchom ten fragment kodu.

    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");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronXL w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jakie wymagania wstępne są potrzebne?

Przed wdrożeniem hiperłączy upewnij się, że masz zainstalowany IronXL w swoim projekcie .NET. Konieczna jest również podstawowa znajomość zaznaczania zakresów i zarządzania arkuszami w IronXL. Biblioteka obsługuje .NET Framework 4.6.2+ oraz .NET Core/5/6/7/8+, dzięki czemu jest kompatybilna z większością nowoczesnych aplikacji .NET.


Jak utworzyć hiperłącza URL w komórkach programu Excel?

Właściwość Hyperlink istnieje w klasie Cell. Kod worksheet["A1"] zwraca obiekt Range; użyj metody First, aby uzyskać dostęp do pierwszej komórki w zakresie.

Alternatywnie, można bezpośrednio uzyskać dostęp do komórki za pomocą metody GetCellAt, co umożliwia bezpośredni dostęp do właściwości Hyperlink. Takie podejście jest szczególnie przydatne podczas pracy z konkretnymi współrzędnymi komórek w arkuszach kalkulacyjnych.

Przyjrzyjmy się przykładowi tworzenia hiperłączy. Obsługiwane są zarówno protokoły HTTP, jak i HTTPS, co umożliwia tworzenie linków do bezpiecznych i niezabezpieczonych zasobów internetowych. Podczas tworzenia hiperłączy warto rozważyć połączenie ich z formatowaniem komórek, aby wizualnie odróżniały się od zwykłego tekstu.

OstrzeżenieUżycie metody GetCellAt do wybrania niemodyfikowanej komórki spowoduje rzucenie wyjątku System.NullReferenceException: 'Object reference not set to an instance of an object.'

: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")
$vbLabelText   $csharpLabel

Co się stanie, gdy kliknę utworzony hiperłącze?

Po kliknięciu hiperłącza utworzonego za pomocą IronXL program Excel wyświetla monit o otwarcie podanego adresu URL w domyślnej przeglądarce internetowej. Komórka zachowuje swoją pierwotną wartość przy dodaniu funkcji hiperłącza, co pozwala zachować tekst opisowy, umożliwiając jednocześnie nawigację. Takie zachowanie jest spójne niezależnie od tego, czy pracujesz z plikami Excel lokalnie, czy wdrażasz je w środowiskach chmurowych.

Excel spreadsheet showing 'Link to rongdf.com' text in cell A1, demonstrating hyperlink creation setup

Jak utworzyć hiperłącza między różnymi arkuszami?

Aby utworzyć hiperłącze do komórki w tym samym arkuszu, użyj adresu komórki, takiego jak Z20. Aby utworzyć hiperłącze między arkuszami, użyj konwencji adresu worksheetName!address. Na przykład, Sheet2!A1. Ta funkcja łączenia arkuszy jest niezbędna podczas tworzenia złożonych raportów w programie Excel zawierających wiele arkuszy danych.

Zdefiniowane komórki nazw mogą mieć zakres skoroszytu (globalny) lub arkusza. Aby utworzyć hiperłącze do nazwy zdefiniowanej w tym samym arkuszu lub nazwy zdefiniowanej w całym skoroszycie, należy podać nazwę bezpośrednio. Aby utworzyć hiperłącze do zdefiniowanej nazwy o zakresie arkusza w innym arkuszu, należy podać nazwę arkusza zgodnie z powyższym opisem. Na przykład, Sheet2!Iron. Dowiedz się więcej o pracy z nazwanymi zakresami w celu zaawansowanej automatyzacji programu 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
$vbLabelText   $csharpLabel

Dlaczego warto używać nazwanych zakresów do hiperłączy?

Nazwane zakresy zapewniają łatwiejsze w utrzymaniu hiperłącza, które pozostają nienaruszone nawet po zmianie struktury arkusza. Po zmianie nazwy lub przeniesieniu komórek hiperłącza wskazujące na nazwane zakresy są automatycznie aktualizowane, co ogranicza liczbę niedziałających linków w aplikacjach Excel. Takie podejście jest szczególnie cenne w przypadku raportów dynamicznych, w których pozycje danych mogą ulegać zmianom.

Excel worksheet showing hyperlink setup with 'A1 of Sheet2' reference and defined name for cross-sheet linking

Jaka jest różnica między zakresem skoroszytu a zakresem arkusza?

Zakresy nazwane o zasięgu skoroszytu (globalnym) są dostępne z dowolnego arkusza w skoroszycie, natomiast nazwy o zasięgu arkusza są dostępne tylko w ramach konkretnego arkusza. Podczas tworzenia hiperłączy do nazwanych zakresów nazwy w zakresie skoroszytu zapewniają większą elastyczność, ale nazwy w zakresie arkusza oferują lepszą enkapsulację danych specyficznych dla arkusza. To rozróżnienie ma kluczowe znaczenie podczas zarządzania wieloma arkuszami w złożonych aplikacjach Excel.


Jak utworzyć hiperłącza do plików, serwerów FTP i adresów e-mail?

Oprócz wspomnianych wcześniej typów hiperłączy, IronXL obsługuje również tworzenie hiperłączy FTP, plików i wiadomości e-mail. Te specjalistyczne typy hiperłączy rozszerzają możliwości automatyzacji programu Excel poza proste linki internetowe.

  • FTP: Rozpoczynając od ftp:// - Linki do plików na serwerach FTP
  • File: Podaj absolutną ścieżkę zaczynającą się od file:/// - Linki do plików lokalnych lub sieciowych
  • Email: Rozpoczynając od mailto: - Tworzy klikalne adresy e-mail

Zwróć uwagęZarówno hiperłącza FTP, jak i plików wymagają użycia ścieżek bezwzględnych.

: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")
$vbLabelText   $csharpLabel

Kiedy należy używać hiperłączy do plików, a kiedy do serwerów FTP?

Używaj hiperłączy do plików (file:///) do plików lokalnych lub udostępnień sieciowych dostępnych przez system plików Windows. Hiperłącza FTP (ftp://) są idealne do linkowania do plików na serwerach FTP, szczególnie w środowiskach firmowych, gdzie dokumenty przechowywane są na dedykowanych serwerach plików. Należy wziąć pod uwagę kwestie bezpieczeństwa podczas korzystania z linków FTP, ponieważ mogą one przesyłać dane uwierzytelniające w postaci zwykłego tekstu.

Other Types of Hyperlinks

Który klient poczty otwiera się po kliknięciu linków typu "mailto"?

Gdy użytkownicy klikną linki mailto w programie Excel, otworzy się ich domyślny klient poczty e-mail z nową wiadomością, w której adresat jest już wpisany. Działa to z programami Outlook, Thunderbird oraz internetowymi klientami poczty skonfigurowanymi jako domyślne w systemie. You can enhance mailto links with subject lines and body text using standard mailto syntax: mailto:example@gmail.com?subject=Hello&body=Message.


Jak usunąć hiperłącza z komórek programu Excel?

To remove a hyperlink, invoke the RemoveHyperlink method. Dostęp do tej metody można uzyskać z obiektu komórki. Usunięcie hiperłączy jest przydatne podczas czyszczenia danych lub konwersji raportów zawierających linki do dokumentów statycznych.

: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")
$vbLabelText   $csharpLabel

Czy usunięcie hiperłącza powoduje usunięcie zawartości komórki?

Nie, usunięcie hiperłącza zachowuje wartość i formatowanie komórki. Usunięto jedynie funkcjonalność hiperłączy, pozostawiając tekst wyświetlany bez zmian. Dzięki temu można bezpiecznie usuwać hiperłącza bez utraty danych, co jest szczególnie ważne podczas konwersji typów plików arkuszy kalkulacyjnych lub przygotowywania dokumentów do archiwizacji.

Jak usunąć wiele hiperłączy jednocześnie?

Aby efektywnie usunąć wiele hiperłączy, należy przejrzeć zakres komórek lub użyć LINQ do przetworzenia komórek zawierających hiperłącza:

// 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
$vbLabelText   $csharpLabel

Takie podejście jest szczególnie przydatne podczas czyszczenia importowanych danych lub przygotowywania arkuszy kalkulacyjnych do dystrybucji, gdzie hiperłącza mogą być nieodpowiednie. Aby poznać bardziej zaawansowane techniki manipulacji komórkami, zapoznaj się z naszym przewodnikiem dotyczącym zaznaczania i pracy z zakresami.

Często Zadawane Pytania

Jak utworzyć hiperłącze w Excelu używając C#?

Możesz łatwo tworzyć hiperłącza w Excelu za pomocą IronXL, uzyskując dostęp do komórki i ustawiając jej właściwość Hyperlink. Wystarczy załadować lub utworzyć skoroszyt, uzyskać żądaną komórkę, używając GetCellAt() lub indeksowania arkusza, a następnie przypisać ciąg URL do właściwości Hyperlink komórki. IronXL automatycznie obsługuje całe złożone formatowanie Excela, bez konieczności korzystania z Microsoft Interop.

Jakie rodzaje hiperłączy można utworzyć w komórkach Excela?

IronXL obsługuje tworzenie różnych rodzajów hiperłączy, w tym: URL-e do zewnętrznych stron internetowych, ścieżki plików do otwierania lokalnych plików lub plików FTP, adresy e-mail z linkami mailto, odwołania do komórek w obrębie tego samego arkusza i odwołania do komórek ze zdefiniowaną nazwą. Wszystkie te typy hiperłączy można implementować, używając tego samego właściwości Hyperlink w IronXL.

Czy muszę mieć zainstalowany Microsoft Office, aby dodać hiperłącza do plików Excel?

Nie, IronXL działa niezależnie, bez konieczności korzystania z Microsoft Office czy zestawów Interop. Biblioteka zawiera wszystkie potrzebne komponenty do tworzenia, odczytywania i modyfikacji plików Excel z hiperłączami bezpośrednio w aplikacji .NET, co sprawia, że jest idealna do środowisk serwerowych, gdzie instalacja Office nie jest możliwa.

Jakie frameworki .NET są wspierane do tworzenia hiperłączy w Excelu?

IronXL wspiera szeroką gamę frameworków .NET, w tym .NET Framework 4.6.2 i nowsze oraz .NET Core, .NET 5, 6, 7 i 8+. Ta szeroka kompatybilność zapewnia możliwość integracji funkcjonalności tworzenia hiperłączy IronXL zarówno w przypadku starszych aplikacji, jak i nowoczesnych projektów w .NET.

Czy mogę dodać hiperłącza do istniejących plików Excel, czy tylko do nowych?

IronXL umożliwia dodawanie hiperłączy zarówno do nowych, jak i istniejących plików Excel. Możesz załadować istniejący skoroszyt używając WorkBook.Load(), uzyskać dostęp do dowolnej komórki lub zakresu i dodać hiperłącza bez wpływu na inne treści lub formatowanie w arkuszu kalkulacyjnym. Biblioteka zachowuje istniejące dane, dodając nowe interaktywne elementy.

Jak uzyskać dostęp do konkretnej komórki, aby dodać hiperłącze?

IronXL oferuje wiele sposobów uzyskania dostępu do komórek w celu dodania hiperłączy. Możesz użyć GetCellAt() z indeksami wiersza i kolumny lub użyć indeksowania arkusza z adresami komórek, jak np. worksheet["A1"]. Dla zakresów użyj metody First, aby uzyskać pierwszą komórkę. Biblioteka również obsługuje wybieranie zakresów dla operacji masowych z hiperłączami.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 1,950,735 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronXl.Excel
uruchom próbkę zobacz, jak Twoje dane stają się arkuszem.