Como criar hiperlinks no Excel usando C#

Como Criar Hiperlinks no Excel com C#

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

O IronXL permite que desenvolvedores C# criem vários hiperlinks em células do Excel, incluindo URLs, caminhos de arquivos, endereços de e-mail e referências de células sem usar Interop, simplificando o processo de adicionar navegação interativa a planilhas.

Hiperlinks no Excel fornecem referências clicáveis para locais dentro da pasta de trabalho, diferentes arquivos, páginas da web ou endereços de e-mail. Eles melhoram a navegação, permitindo acesso rápido a informações relacionadas e recursos externos. Hiperlinks criam planilhas interativas e amigáveis, facilitando o acesso fácil a dados adicionais ou conteúdo externo.

O IronXL permite a criação de hiperlinks para URLs, abrindo arquivos externos a partir de sistemas de arquivos locais e FTP (File Transfer Protocol), endereços de e-mail, endereços de célula e células de nome definido sem o uso de Interop em .NET C#. Essa funcionalidade é essencial ao trabalhar com arquivos Excel programaticamente em aplicações empresariais.

Início Rápido: Adicione um Hiperlink com IronXL em Apenas Algumas Etapas

Este exemplo mostra como é fácil adicionar um hiperlink da web a uma célula do Excel usando IronXL. Em apenas algumas linhas—crie a pasta de trabalho, defina o valor da célula, atribua o hiperlink e salve—você terá um link interativo em sua planilha. Para uma manipulação mais abrangente do Excel, explore nosso guia sobre edição de arquivos Excel em C#.

  1. Instale IronXL com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronXl.Excel
  2. Copie e execute este trecho de código.

    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. Implante para testar em seu ambiente de produção.

    Comece a usar IronXL em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Quais são os pré-requisitos?

Antes de implementar hiperlinks, verifique se você tem o IronXL instalado em seu projeto .NET. Você também precisará de um entendimento básico sobre seleção de intervalos e gestão de planilhas no IronXL. A biblioteca suporta .NET Framework 4.6.2+ e .NET Core/5/6/7/8+, tornando-a compatível com a maioria das aplicações .NET modernas.


A propriedade Hyperlink existe na classe Cell. O código worksheet["A1"] retorna um objeto Range; use o método First para acessar a primeira célula no intervalo.

Alternativamente, acesse diretamente a célula usando o método GetCellAt, permitindo que você acesse a propriedade Hyperlink diretamente. Esta abordagem é particularmente útil ao trabalhar com coordenadas específicas de células em suas planilhas.

Vamos explorar um exemplo de criação de hiperlinks de link. Os protocolos HTTP e HTTPS são ambos suportados, permitindo que você vincule a recursos web seguros e não seguros. Ao criar hiperlinks, considere combiná-los com formatação de célula para torná-los visualmente distintos do texto comum.

AvisoUsar o método GetCellAt para selecionar uma célula não modificada lançará 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");
$vbLabelText   $csharpLabel

Quando você clica em um hiperlink criado com IronXL, o Excel solicita que você abra o URL vinculado em seu navegador web padrão. A célula mantém seu valor original enquanto adiciona a funcionalidade de hiperlink, permitindo que você preserve o texto descritivo enquanto habilita a navegação. Esse comportamento é consistente, independentemente de você estar trabalhando com arquivos Excel localmente ou implantando em ambientes na nuvem.

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

Para criar um hyperlink para uma célula dentro da mesma planilha, use o endereço da célula, como Z20. Para criar um hyperlink entre planilhas, use a convenção de endereço worksheetName!address. Por exemplo, Sheet2!A1. Essa capacidade de vinculação entre planilhas é essencial ao construir relatórios complexos do Excel com várias planilhas de dados.

Células de nome definido podem ter escopo de pasta de trabalho (global) ou de planilha. Para criar um hiperlink para um nome definido dentro da mesma planilha ou um nome definido com escopo de pasta de trabalho, especifique o nome diretamente. Para criar um hiperlink para um nome definido com escopo de planilha em uma planilha diferente, especifique o nome da planilha conforme mencionado acima. Por exemplo, Sheet2!Iron. Saiba mais sobre como trabalhar com intervalos nomeados para automação avançada do 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");
$vbLabelText   $csharpLabel

Os intervalos nomeados fornecem hyperlinks mais sustentáveis que sobrevivem à reestruturação da planilha. Quando você renomeia ou move células, os hyperlinks que apontam para intervalos nomeados são atualizados automaticamente, reduzindo links quebrados em seus aplicativos Excel. Esta abordagem é particularmente valiosa em relatórios dinâmicos onde as posições dos dados podem mudar.

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

Qual é a diferença entre escopo da pasta de trabalho e da planilha?

Intervalos nomeados de escopo de pasta de trabalho (global) são acessíveis de qualquer planilha dentro da pasta de trabalho, enquanto nomes de escopo de planilha são acessíveis apenas dentro de sua planilha específica. Ao criar hyperlinks para intervalos nomeados, nomes de escopo de pasta de trabalho oferecem mais flexibilidade, mas nomes de escopo de planilha oferecem melhor encapsulamento para dados específicos da planilha. Essa distinção torna-se crucial ao gerenciar múltiplas planilhas em aplicativos Excel complexos.


Além dos tipos de hyperlink mencionados anteriormente, o IronXL também suporta a criação de hyperlinks FTP, de arquivo e de email. Esses tipos especializados de hyperlink expandem suas capacidades de automação do Excel além dos simples links web.

  • FTP: Começando com ftp:// - Links para arquivos em servidores FTP
  • Arquivo: Especifique um caminho absoluto começando com file:/// - Links para arquivos locais ou de rede
  • Email: Começando com mailto: - Cria endereços de email clicáveis

ObserveTanto hyperlinks FTP quanto de Arquivo requerem o uso de caminhos absolutos.

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

Use hyperlinks de arquivo (file:///) para arquivos locais ou compartilhamentos de rede acessíveis através do sistema de arquivos do Windows. Hyperlinks FTP (ftp://) são ideais para linkar a arquivos em servidores FTP, particularmente em ambientes empresariais onde documentos são armazenados em servidores de arquivos dedicados. Considere as implicações de segurança ao usar links FTP, pois eles podem transmitir credenciais em texto simples.

Other Types of Hyperlinks

Quando os usuários clicam em links mailto no Excel, o cliente de email padrão deles é aberto com uma nova mensagem pré-endereçada ao email especificado. Isso funciona com Outlook, Thunderbird e clientes de email baseados na web configurados como padrões do sistema. You can enhance mailto links with subject lines and body text using standard mailto syntax: mailto:example@gmail.com?subject=Hello&body=Message.


To remove a hyperlink, invoke the RemoveHyperlink method. Este método pode ser acessado a partir do objeto célula. Remover hyperlinks é útil ao limpar dados ou converter relatórios vinculados em documentos estáticos.

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

Não, remover um hyperlink preserva o valor e a formatação da célula. Apenas a funcionalidade do hyperlink é removida, deixando o texto de exibição intacto. Isso torna seguro remover hyperlinks sem perda de dados, o que é particularmente importante ao converter tipos de arquivos de planilha ou preparar documentos para arquivamento.

Para remover múltiplos hyperlinks de forma eficiente, itere por um intervalo de células ou use LINQ para processar células contendo hyperlinks:

// 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();
    }
}
$vbLabelText   $csharpLabel

Esta abordagem é particularmente útil ao limpar dados importados ou preparar planilhas para distribuição onde hyperlinks podem não ser apropriados. Para técnicas mais avançadas de manipulação de células, explore nosso guia sobre seleção e trabalho com intervalos.

Perguntas frequentes

Como faço para criar um hiperlink no Excel usando C#?

Você pode criar hiperlinks facilmente no Excel usando o IronXL, acessando uma célula e definindo sua propriedade Hyperlink. Basta carregar ou criar uma pasta de trabalho, obter a célula desejada usando GetCellAt() ou o indexador da planilha e, em seguida, atribuir uma string de URL à propriedade Hyperlink da célula. O IronXL lida com toda a formatação complexa do Excel automaticamente, sem exigir a interoperabilidade com o Microsoft Excel.

Que tipos de hiperlinks podem ser criados em células do Excel?

O IronXL permite a criação de vários tipos de hiperlinks, incluindo: URLs para sites externos, caminhos de arquivos para abrir arquivos locais ou FTP, endereços de e-mail com links mailto, referências a células dentro da mesma planilha e referências a células com nomes definidos. Todos esses tipos de hiperlink podem ser implementados usando a mesma propriedade Hyperlink no IronXL.

Preciso ter o Microsoft Office instalado para adicionar hiperlinks a arquivos do Excel?

Não, o IronXL opera de forma independente, sem exigir o Microsoft Office ou assemblies de interoperabilidade. A biblioteca inclui todos os componentes necessários para criar, ler e modificar arquivos do Excel com hiperlinks diretamente em sua aplicação .NET, tornando-a ideal para ambientes de servidor onde a instalação do Office não é viável.

Quais frameworks .NET são suportados para a criação de hiperlinks no Excel?

O IronXL oferece suporte a uma ampla gama de frameworks .NET, incluindo o .NET Framework 4.6.2 e versões superiores, bem como o .NET Core, .NET 5, 6, 7 e 8+. Essa ampla compatibilidade garante que você possa integrar a funcionalidade de hiperlinks do IronXL tanto em aplicações legadas quanto em projetos .NET modernos.

Posso adicionar hiperlinks a arquivos Excel existentes ou apenas a novos?

IronXL permite adicionar hiperlinks a arquivos Excel novos e existentes. Você pode carregar uma planilha existente usando WorkBook.Load(), acessar qualquer célula ou intervalo e adicionar hiperlinks sem afetar outros conteúdos ou a formatação da planilha. A biblioteca preserva os dados existentes enquanto adiciona novos elementos interativos.

Como faço para acessar uma célula específica para adicionar um hiperlink?

O IronXL oferece várias maneiras de acessar células para adicionar hiperlinks. Você pode usar o método GetCellAt() com índices de linha e coluna, ou usar o indexador de planilha com endereços de células como worksheet["A1"]. Para intervalos, use o método First para obter a primeira célula. A biblioteca também suporta a seleção de intervalos para operações de hiperlink em lote.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Pronto para começar?
Nuget Downloads 1,890,100 | Versão: 2026.3 acaba de ser lançado

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronXl.Excel
executar um exemplo Veja seus dados se transformarem em uma planilha.