IronWord ile DOCX'ten Metin Çıkarma

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

IronWord'ün ExtractText() yöntemi, tüm belgelere, belirli paragraflara veya tablo hücrelerine erişerek DOCX dosyalarından metin çıkarmanıza olanak tanır ve C#'da belge işleme ve veri analizi görevleri için basit bir API sağlar.

Hızlı Başlangıç: DOCX'ten Metin Çıkar

  1. IronWord aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronWord
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    using IronWord;
    
    // Quick example: Extract all text from DOCX
    WordDocument doc = new WordDocument("sample.docx");
    string allText = doc.ExtractText();
    Console.WriteLine(allText);
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronWord kullanmaya başlayın

    arrow pointer

DOCX Belgesinden Tüm Metni Nasıl Çıkarırım?

ExtractText() yöntemi, bir WORD belgesinin tamamından metin içeriğini alır. Bu örnekte, yeni bir belge oluşturuyoruz, içine metin ekliyoruz, ExtractText() kullanarak metni çıkarıyoruz ve konsolda görüntülüyoruz. Bu, birincil metin çıkarma iş akışını gösterir.

Çıkartılan metin, belgenin mantıksal okuma sırasını korur. Metod, başlıkları, paragrafları, listeleri ve diğer metin öğelerini sırayla işler, içerik analizi ve arama indeksleme uygulamaları için idealdir.

: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());
Imports System
Imports IronWord

' Instantiate a new DOCX file
Dim doc As New WordDocument()

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

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

Çıkartılan Metin Nasıl Görünür?

Microsoft Word belgesi, 'Merhaba, Dünya!' yazısını görüntüleyerek, biçimlendirme şeridi açık olarak

Konsolda Ne Tür Bir Çıktı Beklenmelidir?

Console.WriteLine örneğini gösteren kod, 'Merhaba, Dünya!' çıktısını gösteren hata ayıklama konsolu ile

Belirli Paragraflardan Metin Nasıl Çıkarabilirim?

Daha fazla kontrol için, tüm belge yerine belirli paragraflardan metin çıkarabilirsiniz. Paragraphs koleksiyonuna erişerek, ihtiyacınız olan herhangi bir paragrafı hedefleyebilir ve işleyebilirsiniz. Bu ayrıntılı yaklaşım, belgelerin yapılandırılmış içeriğe sahip olduğu veya belirli bölümleri bağımsız olarak işlemeniz gerektiğinde kullanışlıdır.

Bu örnekte, ilk ve son paragraflardan metinleri ayıklayıp birleştiriyor ve sonucu .txt dosyasına kaydediyoruz. Bu teknik, bir belgenin giriş ve sonuç bölümlerini ayıklamak istediğinizde genellikle belge özetleme araçlarında kullanılır. Özelliklerin kilidini açmak için lisans anahtarlarını kullanmanıza benzer şekilde, Paragraphs koleksiyonu size belirli belge öğelerine erişim sağlar.

: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);
Imports System.IO
Imports System.Linq
Imports IronWord

' Load an existing DOCX file
Dim doc As New WordDocument("document.docx")

' Extract text and assign variables
Dim firstParagraph As String = doc.Paragraphs(0).ExtractText()
Dim lastParagraph As String = doc.Paragraphs.Last().ExtractText()

' Combine the texts
Dim newText As String = firstParagraph & " " & lastParagraph

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

Belirli paragrafların çıkarılma yeteneği, belge analizi gereksinimleriyle birleştirildiğinde güçlü hale gelir. Örneğin, biçimlendirme, konum veya içerik desenlerine dayalı olarak anahtar paragrafları çıkarabilirsiniz. Bu seçici çıkarma yaklaşımı, işlem süresini azaltmaya ve en alakalı içeriğe odaklanmaya yardımcı olur.

İlk Paragraftan Hangi İçerik Çıkarılır?

Çıkarma gösterimi için siyah metin paragrafının üzerinde kırmızı biçimlendirilmiş paragraf gösteren Word belgesi

Son Paragraftan Hangi İçerik Çıkarılır?

Microsoft Word belgesi mor ve mavi renklerde Lorem ipsum metni içeren biçimlendirilmiş paragraflar gösteriyor

Birleştirilen Metin Çıkartılan Dosyada Nasıl Görünür?

Paragraf sınırlarını gösteren kırmızı ve mavi oklarla işaretlenen paragraf çıkarma noktaları gösteren metin düzenleyici

Yukarıdaki ekran görüntüleri, ilk paragraf çıkarmasını, son paragraf çıkarmasını ve birleştirilmiş çıktıyı bir metin dosyasına kaydetmeyi gösteriyor. Çıkarma işleminin metin içeriğini koruyarak biçimlendirme bilgilerinden arındığını ve basit metin işleme için uygun hale geldiğini fark edeceksiniz.

DOCX İçindeki Tablolardan Nasıl Veri Çıkarırım?

Tablolar genellikle işleme veya analiz için çıkarılması gereken yapısal veriler içerir. IronWord, satır ve hücreler arasında gezinerek tablo verilerine erişmenizi sağlar. Bu örnekte, bir API istatistikleri tablosu içeren bir belge yüklüyoruz ve 2. satırın 4. sütunundan belirli bir hücre değerini çıkarıyoruz.

Tablo çıkarmak, veri taşıma projeleri, rapor oluşturma ve otomatik veri toplama iş akışları için gereklidir. Tablolu verilerle çalışırken, sıfır tabanlı indeksleme sistemini anlamak çok önemlidir; ilk tablo Tables[0], ilk satır Rows[0] vb. şeklindedir. Bu sistematik yaklaşım, lisanslama yapıları gibi, öngörülebilir erişim modelleri sağlar.

: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}");
Imports System
Imports IronWord
Imports IronWord.Models

' Load the API statistics document
Dim apiStatsDoc As New WordDocument("api-statistics.docx")

' Extract text from the 1st table, 4th column and 2nd row
Dim extractedValue As String = CType(apiStatsDoc.Tables(0).Rows(2).Cells(3), TableCell).ExtractText()

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

Kod, Tables, Rows ve Cells koleksiyon özelliklerini kullanarak tablo hücrelerine erişmeyi göstermektedir. Cells koleksiyonunun ITableCell arayüz nesnelerini döndürdüğünü ve TableCell yöntemine erişmek için bunların ExtractText'ye dönüştürülmesi gerektiğini unutmayın: ((TableCell)cell).ExtractText(). Bunun için ad alanı bildirimlerinize using IronWord.Models; eklemeniz gerekir.

Kaynak Tablo Nasıl Görünür?

6 uç nokta ile istekler, gecikme süresi, başarı oranları ve bant genişliği metriklerini gösteren Word'deki API kullanım istatistikleri tablosu

Tablo Hücresinden Hangi Değer Alınır?

Görsel Studio Hata Ayıklama Konsolunda 'Hedef başarı oranı: %99.8' çıkarılan tablo değerini gösteren konsol çıktısı

Gelişmiş Metin Çıkarma Senaryoları

Karmaşık belgelerle çalışırken birden fazla çıkarma tekniğini birleştirmeniz gerekebilir. İşte farklı belgelerden metin çıkarıp farklı şekilde işleyerek yapılandırılmış çıkarmalar oluşturmayı gösteren bir örnek:

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());
Imports IronWord
Imports System.Text
Imports System.Linq

' Load a complex document
Dim complexDoc As New WordDocument("report.docx")

' Create a StringBuilder for efficient string concatenation
Dim extractedContent As New StringBuilder()

' Extract and process headers (assuming they're in the first few paragraphs)
Dim headers = complexDoc.Paragraphs _
    .Take(3) _
    .Select(Function(p) p.ExtractText()) _
    .Where(Function(text) Not String.IsNullOrWhiteSpace(text))

For Each header In headers
    extractedContent.AppendLine($"HEADER: {header}")
Next

' Extract table summaries
For Each table In complexDoc.Tables
    ' Get first cell as table header/identifier
    Dim tableIdentifier As String = table.Rows(0).Cells(0).ExtractText()
    extractedContent.AppendLine(vbCrLf & $"TABLE: {tableIdentifier}")

    ' Extract key metrics (last row often contains totals)
    If table.Rows.Count > 1 Then
        Dim lastRow = table.Rows.Last()
        Dim totals = lastRow.Cells.Select(Function(cell) cell.ExtractText())
        extractedContent.AppendLine($"Totals: {String.Join(", ", totals)}")
    End If
Next

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

Bu gelişmiş örnek, farklı belge öğelerini birleştirerek yapılandırılmış çıkartmalar oluşturmayı gösterir. Bu yaklaşım, belge özetleri oluşturmak, dizinler oluşturmak veya verileri daha ileri işlemler için hazırlamak açısından kullanışlıdır. Yükseltmelerin yazılım yeteneklerini artırdığı gibi, çıkarma yöntemlerini birleştirmek de belge işleme yeteneklerinizi artırır.

Metin Çıkarma İçin En İyi Uygulamalar

Üretim uygulamalarında metin çıkarma uygularken bu en iyi uygulamalara dikkat edin:

  1. Hata Yönetimi: Belgelerin bozuk olabileceği veya beklenmeyen yapılar içerebileceği durumlar için çıkarma kodunu her zaman try-catch blokları içinde sarın.

  2. Performans Optimizasyonu: Büyük belgeler veya toplu işlem için tüm değil, yalnızca gerekli bölümleri çıkarmayı düşünün.

  3. Karakter Kodlaması: Özellikle özel karakterler veya birden çok diller içeren belgeler için çıkartılan metni kaydederken karakter kodlaması hakkında bilgi sahibi olun.

  4. Bellek Yönetimi: Birden fazla belgeyi işlerken, bellek sızıntılarını önlemek için WordDocument nesnelerini uygun şekilde imha edin.

Metin çıkarma işleminin mantıksal okuma sırasını koruduğunu ancak biçimlendirmeyi kaldırdığını unutmayın. Biçimlendirme bilgilerini korumak gerekiyorsa, ek IronWord özelliklerini kullanmayı veya meta verileri ayrı olarak depolamayı düşünün. Üretim dağıtımları için, en son özellikler ve iyileştirmelerle güncel kalmak üzere değişiklik günlüğünü inceleyin.

Özet

IronWord'ün ExtractText() yöntemi, DOCX dosyalarından metin çıkarmak için güçlü ve esnek bir yol sunar. Tüm belgeleri, belirli paragrafları veya tablo verilerini çıkarmanız gerektiğinde, API hedeflerinizi gerçekleştirmek için doğrudan yöntemler sunar. Bu teknikleri doğru hata yönetimi ve optimizasyon stratejileri ile birleştirerek, çeşitli metin çıkarma senaryolarını verimli bir şekilde işleyen sağlam belge işleme uygulamaları oluşturabilirsiniz.

Daha ileri senaryolar ve ek özellikler keşfetmek için eklentiler ve belge işlem özelliğinizi artıracak diğer dokümantasyon kaynaklarına göz atın.

Sıkça Sorulan Sorular

C# bir Word belgesinden tüm metni nasıl çıkarırım?

WordDocument nesnesi üzerinde IronWord'un ExtractText() metodunu kullanın. Basitçe DOCX dosyanızı WordDocument doc = new WordDocument("document.docx"); ile yükleyin ve ardından belgede yer alan tüm metin içeriğini almak için string text = doc.ExtractText();'i çağırın.

Tüm belge yerine belirli paragraflardan metin çıkarabilir miyim?

Evet, IronWord belirli paragraflardan metin çıkarmanıza olanak tanır. Paragraflar koleksiyonuna erişerek doc.Paragraphs[index].ExtractText() kullanarak daha ayrıntılı metin çıkarımı için bireysel paragrafları hedefleyin.

DOCX dosyalarındaki tablolardan metin nasıl çıkarılır?

IronWord, Tablolar koleksiyonuyla tablo metni çıkarmaya olanak tanır. doc.Tables[0].Rows[0].Cells[0].ExtractText() kullanarak herhangi bir tablo hücresinden metin içeriği almak için belirli hücrelere erişin.

ExtractText() yöntemini kullanırken elde edilen metin hangi sırayı takip eder?

IronWord'un ExtractText() metodu, belgeyi, başlıkları, paragrafları, listeleri ve diğer metin öğelerini bir dizi olarak işlerken, belgenin mantıksal okuma sırasını korur. Bu, içerik analizi ve arama indekslemeye uygun hale getirir.

DOCX dosyalarından metin çıkarmaya başlarken temel adımlar nelerdir?

Önce IronWord'u NuGet ile yükleyin (Install-Package IronWord), ardından bir WordDocument oluşturun veya yükleyin ve ardından tüm belgelerden, belirli paragraflardan veya tablo hücrelerinden metni almak için ExtractText() metodunu kullanın.

Metin çıkarımı, belge indeksleme sistemleri oluşturmak için uygun mudur?

Evet, IronWord'un metin çıkarma yetenekleri, belge indeksleme sistemleri, içerik yönetim çözümleri ve veri çıkarma hatları kurmak için mükemmeldir. Word belge içeriğine etkin programlı erişim sağlar.

Ahmad Sohail
Full Stack Geliştirici

Ahmad, C#, Python ve web teknolojilerinde sağlam bir temele sahip bir full-stack geliştiricidir. Gerçek dünyadaki uygulamalarda ölçeklenebilir yazılım çözümleri oluşturmaktan ve tasarım ile işlevselliğin nasıl buluştuğunu keşfetmekten derin bir ilgi duyar.

...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 44,829 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronWord
bir örnek çalıştırın verilerinizi bir Word belgesine dönüştürün.