Extrair texto de DOCX com IronWord

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

O método ExtractText() do IronWord permite extrair texto de arquivos DOCX acessando documentos inteiros, parágrafos específicos ou células de tabela, fornecendo uma API simples para tarefas de processamento de documentos e análise de dados no C#.

Início rápido: Extrair texto de DOCX

  1. Instale IronWord com o Gerenciador de Pacotes NuGet

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

    using IronWord;
    
    // Quick example: Extract all text from DOCX
    WordDocument doc = new WordDocument("sample.docx");
    string allText = doc.ExtractText();
    Console.WriteLine(allText);
  3. Implante para testar em seu ambiente de produção.

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

    arrow pointer

Como extrair todo o texto de um documento DOCX?

O método ExtractText() recupera conteúdo de texto de um documento Word inteiro. Neste exemplo, criamos um novo documento, adicionamos texto a ele, extraímos o texto usando ExtractText() e exibimos no console. Isto demonstra o fluxo de trabalho principal de extração de texto.

O texto extraído mantém a ordem lógica de leitura do documento. O método processa cabeçalhos, parágrafos, listas e outros elementos de texto em sequência, tornando-o ideal para aplicações de análise de conteúdo e indexação de mecanismos de busca.

:path=/static-assets/word/content-code-examples/how-to/extract-text-simple.cs
using System;
using IronWord;

// Instantiate a new DOCX file
WordDocument doc = new WordDocument();

// Add text
doc.AddText("Hello, World!");

// Print extracted text from the document to the console
Console.WriteLine(doc.ExtractText());
$vbLabelText   $csharpLabel

Qual é a aparência do texto extraído?

Documento do Microsoft Word exibindo o texto

Que tipo de resultado devo esperar no console?

Exemplo de código mostrando Console.WriteLine imprimindo o texto extraído, com o console de depuração exibindo a saída 'Olá, Mundo!'

Como posso extrair texto de parágrafos específicos?

Para maior controle, você pode extrair texto de parágrafos específicos em vez do documento inteiro. Acessando a coleção Paragraphs, você pode selecionar e processar qualquer parágrafo que precisar. Essa abordagem granular é útil ao lidar com documentos que possuem conteúdo estruturado ou quando é necessário processar seções específicas de forma independente.

Neste exemplo, extraímos texto do primeiro e último parágrafos, combinamos e salvamos o resultado em um arquivo .txt. Essa técnica é comumente usada em ferramentas de sumarização de documentos, onde você pode querer extrair a introdução e a conclusão de um documento. Similar a como você pode usar chaves de licença para desbloquear recursos, a coleção Paragraphs dá acesso a elementos específicos do documento.

:path=/static-assets/word/content-code-examples/how-to/extract-text-paragraphs.cs
using System.IO;
using System.Linq;
using IronWord;

// Load an existing DOCX file
WordDocument doc = new WordDocument("document.docx");

// Extract text and assign variables
string firstParagraph = doc.Paragraphs[0].ExtractText();
string lastParagraph = doc.Paragraphs.Last().ExtractText();

// Combine the texts
string newText = firstParagraph + " " + lastParagraph;

// Export the combined text as a new .txt file
File.WriteAllText("output.txt", newText);
$vbLabelText   $csharpLabel

A capacidade de extrair parágrafos específicos torna-se poderosa quando combinada com os requisitos de análise de documentos. Por exemplo, você pode extrair parágrafos importantes com base em sua formatação, posição ou padrões de conteúdo. Essa abordagem de extração seletiva ajuda a reduzir o tempo de processamento e concentra-se no conteúdo mais relevante.

Que conteúdo foi extraído do primeiro parágrafo?

Documento do Word mostrando um parágrafo formatado em vermelho acima de um parágrafo de texto preto para demonstração de extração.

Que conteúdo foi extraído do último parágrafo?

Documento do Microsoft Word mostrando parágrafos formatados com texto Lorem ipsum em cores roxa e azul.

Como o texto combinado aparece no arquivo de saída?

Editor de texto mostrando os pontos de extração de parágrafos marcados com setas vermelhas e azuis, indicando os limites dos parágrafos.

As capturas de tela acima mostram a extração do primeiro parágrafo, a extração do último parágrafo e o resultado combinado salvo em um arquivo de texto. Observe como o processo de extração preserva o conteúdo do texto enquanto remove as informações de formatação, tornando-o adequado para processamento de texto simples.

Como extrair dados de tabelas em um arquivo DOCX?

As tabelas geralmente contêm dados estruturados que precisam ser extraídos para processamento ou análise. O IronWord permite acessar os dados da tabela navegando pelas linhas e células. Neste exemplo, carregamos um documento contendo uma tabela de estatísticas de API e extraímos o valor de uma célula específica da quarta coluna da segunda linha.

A extração de tabelas é essencial para projetos de migração de dados, geração de relatórios e fluxos de trabalho automatizados de coleta de dados. Ao trabalhar com dados tabulares, entender o sistema de indexação baseado em zero é crucial - a primeira tabela é Tables[0], a primeira linha é Rows[0], e assim por diante. Essa abordagem sistemática, semelhante às estruturas de licenciamento , proporciona padrões de acesso previsíveis.

:path=/static-assets/word/content-code-examples/how-to/extract-text-table.cs
using System;
using IronWord;
using IronWord.Models;

// Load the API statistics document
WordDocument apiStatsDoc = new WordDocument("api-statistics.docx");

// Extract text from the 1st table, 4th column and 2nd row
string extractedValue = ((TableCell)apiStatsDoc.Tables[0].Rows[2].Cells[3]).ExtractText();

// Print extracted value
Console.WriteLine($"Target success rate: {extractedValue}");
$vbLabelText   $csharpLabel

O código demonstra o acesso a células da tabela usando as propriedades da coleção Tables, Rows, e Cells. Note que a coleção Cells retorna objetos de interface ITableCell, que devem ser convertidos para TableCell para acessar o método ExtractText: ((TableCell)cell).ExtractText(). Isso requer adicionar using IronWord.Models; às suas declarações de namespace.

Qual é a aparência da tabela de origem?

Tabela de estatísticas de uso da API no Word, mostrando 6 endpoints com métricas de requisições, latência, taxas de sucesso e largura de banda.

Qual valor é obtido da célula da tabela?

Saída do console mostrando o valor extraído da tabela 'Taxa de sucesso alvo: 99,8%' no console de depuração do Visual Studio.

Cenários avançados de extração de texto

Ao trabalhar com documentos complexos, pode ser necessário combinar várias técnicas de extração. Aqui está um exemplo que demonstra a extração de texto de múltiplos elementos e seu processamento de maneiras diferentes:

using IronWord;
using System.Text;
using System.Linq;

// Load a complex document
WordDocument complexDoc = new WordDocument("report.docx");

// Create a StringBuilder for efficient string concatenation
StringBuilder extractedContent = new StringBuilder();

// Extract and process headers (assuming they're in the first few paragraphs)
var headers = complexDoc.Paragraphs
    .Take(3)
    .Select(p => p.ExtractText())
    .Where(text => !string.IsNullOrWhiteSpace(text));

foreach (var header in headers)
{
    extractedContent.AppendLine($"HEADER: {header}");
}

// Extract table summaries
foreach (var table in complexDoc.Tables)
{
    // Get first cell as table header/identifier
    string tableIdentifier = table.Rows[0].Cells[0].ExtractText();
    extractedContent.AppendLine($"\nTABLE: {tableIdentifier}");

    // Extract key metrics (last row often contains totals)
    if (table.Rows.Count > 1)
    {
        var lastRow = table.Rows.Last();
        var totals = lastRow.Cells.Select(cell => cell.ExtractText());
        extractedContent.AppendLine($"Totals: {string.Join(", ", totals)}");
    }
}

// Save the structured extraction
System.IO.File.WriteAllText("structured-extract.txt", extractedContent.ToString());
using IronWord;
using System.Text;
using System.Linq;

// Load a complex document
WordDocument complexDoc = new WordDocument("report.docx");

// Create a StringBuilder for efficient string concatenation
StringBuilder extractedContent = new StringBuilder();

// Extract and process headers (assuming they're in the first few paragraphs)
var headers = complexDoc.Paragraphs
    .Take(3)
    .Select(p => p.ExtractText())
    .Where(text => !string.IsNullOrWhiteSpace(text));

foreach (var header in headers)
{
    extractedContent.AppendLine($"HEADER: {header}");
}

// Extract table summaries
foreach (var table in complexDoc.Tables)
{
    // Get first cell as table header/identifier
    string tableIdentifier = table.Rows[0].Cells[0].ExtractText();
    extractedContent.AppendLine($"\nTABLE: {tableIdentifier}");

    // Extract key metrics (last row often contains totals)
    if (table.Rows.Count > 1)
    {
        var lastRow = table.Rows.Last();
        var totals = lastRow.Cells.Select(cell => cell.ExtractText());
        extractedContent.AppendLine($"Totals: {string.Join(", ", totals)}");
    }
}

// Save the structured extraction
System.IO.File.WriteAllText("structured-extract.txt", extractedContent.ToString());
$vbLabelText   $csharpLabel

Este exemplo avançado mostra como criar extrações estruturadas combinando diferentes elementos do documento. Essa abordagem é útil para gerar resumos de documentos, criar índices ou preparar dados para processamento posterior. Assim como as atualizações aprimoram os recursos do software, a combinação de métodos de extração aprimora suas capacidades de processamento de documentos.

Melhores práticas para extração de texto

Ao implementar a extração de texto em aplicações de produção, considere estas boas práticas:

  1. Tratamento de erros : Sempre envolva o código de extração em blocos try-catch para lidar com documentos que possam estar corrompidos ou que tenham estruturas inesperadas.

  2. Otimização de desempenho : Para documentos grandes ou processamento em lote, considere extrair apenas as partes necessárias em vez de todo o conteúdo do documento.

  3. Codificação de caracteres : Esteja atento à codificação de caracteres ao salvar o texto extraído, especialmente em documentos que contenham caracteres especiais ou vários idiomas.

  4. Gerenciamento de Memória: Ao processar múltiplos documentos, descarte adequadamente os objetos WordDocument para evitar vazamentos de memória.

Lembre-se de que a extração de texto preserva a ordem lógica de leitura, mas remove a formatação. Se precisar manter informações de formatação, considere usar recursos adicionais IronWord ou armazenar metadados separadamente. Para implantações em produção, consulte o changelog para se manter atualizado sobre os recursos e melhorias mais recentes.

Resumo

O método ExtractText() do IronWord oferece uma maneira poderosa e flexível de extrair texto de arquivos DOCX. Quer você precise extrair documentos inteiros, parágrafos específicos ou dados de tabelas, a API oferece métodos simples para atingir seus objetivos. Ao combinar essas técnicas com estratégias adequadas de tratamento de erros e otimização, você pode criar aplicativos robustos de processamento de documentos que lidam com eficiência com diversos cenários de extração de texto.

Para cenários mais avançados e para explorar recursos adicionais, consulte as extensões e outros recursos de documentação para aprimorar suas capacidades de processamento de documentos.

Perguntas frequentes

Como faço para extrair todo o texto de um documento do Word em C#?

Utilize o método ExtractText() do IronWord em um objeto WordDocument. Basta carregar seu arquivo DOCX com WordDocument doc = new WordDocument("document.docx"); e então chamar string text = doc.ExtractText(); para recuperar todo o conteúdo de texto do documento.

Posso extrair texto de parágrafos específicos em vez do documento inteiro?

Sim, o IronWord permite extrair texto de parágrafos específicos acessando a coleção Paragraphs. Use doc.Paragraphs[index].ExtractText() para selecionar parágrafos individuais e obter uma extração de texto mais precisa.

Como extrair texto de tabelas em arquivos DOCX?

O IronWord permite a extração de texto de tabelas através da coleção Tables. Acesse células específicas usando doc.Tables[0].Rows[0].Cells[0].ExtractText() para recuperar o conteúdo de texto de qualquer célula da tabela em seu documento.

Qual é a ordem do texto extraído ao usar ExtractText()?

O método ExtractText() do IronWord mantém a ordem lógica de leitura do documento, processando cabeçalhos, parágrafos, listas e outros elementos de texto em sequência, tornando-o ideal para análise de conteúdo e indexação de pesquisa.

Quais são os passos básicos para começar a extrair texto de arquivos DOCX?

Primeiro, instale o IronWord via NuGet (Install-Package IronWord), depois crie ou carregue um documento do Word e, por fim, use o método ExtractText() para recuperar o texto de todo o documento, de parágrafos específicos ou de células de tabela, conforme necessário.

A extração de texto é adequada para a construção de sistemas de indexação de documentos?

Sim, os recursos de extração de texto do IronWord são perfeitos para a criação de sistemas de indexação de documentos, soluções de gerenciamento de conteúdo e fluxos de trabalho de extração de dados, proporcionando acesso programático eficiente ao conteúdo de documentos do Word.

Ahmad Sohail
Desenvolvedor Full Stack

Ahmad é um desenvolvedor full-stack com uma sólida base em C#, Python e tecnologias web. Ele tem um grande interesse em construir soluções de software escaláveis e gosta de explorar como design e funcionalidade se encontram em aplicações do mundo real.

Antes de se ...

Leia mais
Pronto para começar?
Nuget Downloads 35,581 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronWord
executar um exemplo Veja seus dados se transformarem em um documento do Word.