DataTable'ı C# ile Word Belgesine Ekleme

Bir .NET geliştiricisi olarak DataTable nesneleriyle çok sık uğraşmanız gerekir. Özellikle, veritabanlarından veya XML/JSON dosyalarından veri içe veya dışa aktarmanız gerektiğinde. Belgeleri programlı olarak oluştururken, DataTable nesnelerinden verileri doğrudan Word belgelerindeki tabloya eklemeniz gerekebilir. Bu gibi durumlarda, DataTable’dan C# dilinde bir Word belgesine veri eklemek için size mükemmel ve en kolay çözümü vereyim.

Word DOC’a DataTable Eklemek için C# Kitaplığı - Ücretsiz İndirme

DataTable nesnelerinden Word belgelerine veri aktarmak için Aspose.Words for .NET kullanacağız. MS Word belgeleri oluşturmanıza ve işlemenize izin veren, zengin özelliklere sahip bir kitaplıktır. DLL dosyasını indirebilir veya NuGet’ten yükleyebilirsiniz.

DLL’yi indir

NuGet aracılığıyla yükleyin

PM> Install-Package Aspose.Words

C# DataTable’ı Word Belgesine Ekleme - Adımlar

Aşağıdakiler, bir DataTable’dan veri almak ve bunu Word belgesine eklemek için izleyeceğimiz adımlardır.

  • Bir veritabanından veya veri dosyasından DataTable nesnesine veri yükleyin.
  • Yeni bir Word belgesi oluşturun ve ona yeni bir tablo ekleyin.
  • DataTable’daki satırlar arasında dolaşın ve her satırı Word’ün tablosuna ekleyin.

Ve bu kadar.

Şimdi bu adımları C# koduna nasıl dönüştüreceğimize ve bir DataTable’ı bir Word belgesine nasıl aktaracağımıza bir göz atalım.

C# ile DataTable’dan Word DOC’a Veri Ekleme

İlk olarak, belgeyi oluşturmak için DocumentBuilder’ı, veriye sahip DataTable’ı ve sütun başlıklarını içe aktarmayı etkinleştirmek/devre dışı bırakmak için ek bir parametreyi kabul eden bir yöntem yazacağız. Ayrıca, Table nesnesini döndürür.

Bu yöntemin iş akışı aşağıdadır.

  • Yeni bir tablo oluşturun ve referansını bir Tablo nesnesine alın.
  • DataTable içindeki sütunlara göre tabloya sütunlar ekleyin.
  • İlk satır başlıklar içinse yazı tipi ağırlığını ayarlayın.
  • DataTable.Rows koleksiyonundaki her DataRow içinde döngü yapın.
  • Her değer için yeni bir hücre ekleyin ve veri türünü buna göre ayarlayın.
  • Tablo nesnesini döndürün.

Aşağıda, bir DataTable’dan C# dilindeki Word belgesindeki bir tabloya veri aktarma yönteminin uygulanması yer almaktadır.

///<summary>
/// İçeriği belirtilen DataTable'dan yeni bir Aspose.Words Table nesnesine aktarır. 
/// Tablo, belge oluşturucunun geçerli konumuna ve tanımlanmışsa geçerli oluşturucunun biçimlendirmesi kullanılarak eklenir.
///</summary>
public static Table ImportTableFromDataTable(DocumentBuilder builder, DataTable dataTable, bool importColumnHeadings)
{
    Table table = builder.StartTable();

    // Veri kaynağındaki sütun adlarının bir başlık satırına dahil edilip edilmeyeceğini kontrol edin.
    if (importColumnHeadings)
    {
        // Değiştirmeden önce bu özelliklerin orijinal değerlerini saklayın.
        bool boldValue = builder.Font.Bold;
        ParagraphAlignment paragraphAlignmentValue = builder.ParagraphFormat.Alignment;

        // Başlık satırını uygun özelliklerle biçimlendirin.
        builder.Font.Bold = true;
        builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;

        // Yeni bir satır oluşturun ve her sütunun adını tablonun ilk satırına ekleyin.
        foreach (DataColumn column in dataTable.Columns)
        {
            builder.InsertCell();
            builder.Writeln(column.ColumnName);
        }

        builder.EndRow();

        // Orijinal biçimlendirmeyi geri yükleyin.
        builder.Font.Bold = boldValue;
        builder.ParagraphFormat.Alignment = paragraphAlignmentValue;
    }

    foreach (DataRow dataRow in dataTable.Rows)
    {
        foreach (object item in dataRow.ItemArray)
        {
            // Her nesne için yeni bir hücre ekleyin.
            builder.InsertCell();

            switch (item.GetType().Name)
            {
                case "DateTime":
                    // Tarihler ve saatler için özel bir biçim tanımlayın.
                    DateTime dateTime = (DateTime)item;
                    builder.Write(dateTime.ToString("MMMM d, yyyy"));
                    break;
                default:
                    // Varsayılan olarak diğer herhangi bir öğe metin olarak eklenir.
                    builder.Write(item.ToString());
                    break;
            }

        }

        // Mevcut kayıttaki tüm verileri ekledikten sonra tablo satırını sonlandırabiliriz.
        builder.EndRow();
    }

    // DataTable'daki tüm verileri eklemeyi bitirdik, tabloyu sonlandırabiliriz.
    builder.EndTable();

    return table;
}

Şimdi, bu yöntemi çağırmanın ve bir Word belgesine bir DataTable eklemenin zamanı geldi.

DataTable’ı C# ile Word Belgesine Aktarın

Aşağıdakiler, DataTable’dan C# dilinde bir Word belgesine veri aktarma adımlarıdır.

  • Document sınıfını kullanarak yeni bir Word belgesi oluşturun (veya mevcut bir belgeyi yükleyin).
  • Veri tabanından/dosyadan DataTable nesnesine veri okuyun.
  • Önceki bölümde yazdığımız yöntemi çağırın ve döndürülen Tabloyu alın.
  • Tablonun biçimlendirmesini ayarlayın.
  • Document.Save() yöntemini kullanarak Word dosyasını kaydedin.

Aşağıdaki kod örneği, bir DataTable’ın C# dilinde bir Word belgesine nasıl ekleneceğini gösterir.

// Yeni bir belge oluşturun.
Document doc = new Document();

// Tablonun eklenmesini istediğimiz yere konumlandırabilir ve ayrıca eklenecek herhangi bir biçimlendirmeyi belirtebiliriz.
// masaya da uygulandı.
DocumentBuilder builder = new DocumentBuilder(doc);

// Geniş bir tablo beklediğimiz gibi sayfa manzarasını döndürmek istiyoruz.
doc.FirstSection.PageSetup.Orientation = Orientation.Landscape;

DataSet ds = new DataSet();
ds.ReadXml("Employees.xml");

// DataTable olarak depolanan veri kaynağımızdan verileri alın.
DataTable dataTable = ds.Tables[0];

// DataTable'da bulunan verilerden belgede bir tablo oluşturun.
Table table = ImportTableFromDataTable(builder, dataTable, true);

// Tüm tabloya biçimlendirme uygulamanın çok hızlı bir yolu olarak bir tablo stili uygulayabiliriz.
table.StyleIdentifier = StyleIdentifier.MediumList2Accent1;
table.StyleOptions = TableStyleOptions.FirstRow | TableStyleOptions.RowBands | TableStyleOptions.LastColumn;

// Tablomuz için resim sütununun başlığını kaldırmak istiyoruz.
table.FirstRow.LastCell.RemoveAllChildren();

// Çıkış belgesini kaydedin.
doc.Save("Table.docx");

C# DataTable to Word Importer Library - Ücretsiz Lisans Alın

Aspose.Words for .NET’i değerlendirme sınırlamaları olmadan kullanmak için ücretsiz geçici lisans alabilirsiniz.

Çözüm

Bu makalede, C# dilinde bir DataTable’dan bir Word belgesine nasıl veri ekleneceğini öğrendiniz. DataTable’ı kullanarak kod örneğini uygulamalarınıza kolayca entegre edebilir ve verileri doğrudan veritabanından/XML/JSON’dan Word belgelerine aktarabilirsiniz.

.NET Kelime Kitaplığı - Daha Fazlasını Okuyun

Kitaplık hakkında daha fazlasını keşfetmek için Aspose.Words for .NET belgelerini ziyaret edebilirsiniz. Herhangi bir sorunuz olması durumunda forumumuz aracılığıyla bize bildirmekten çekinmeyin.

Ayrıca bakınız