Datatable’dan Tablo Oluştur

giriiş

Veri kaynaklarından dinamik olarak tablolar oluşturmak birçok uygulamada yaygın bir görevdir. İster raporlar, ister faturalar veya veri özetleri üretiyor olun, bir tabloyu programatik olarak verilerle doldurabilmek size çok fazla zaman ve emek kazandırabilir. Bu eğitimde, Java için Aspose.Words kullanarak bir DataTable’dan bir tablonun nasıl oluşturulacağını inceleyeceğiz. Süreci yönetilebilir adımlara bölerek her bir parçayı net bir şekilde anlamanızı sağlayacağız.

Ön koşullar

Koda dalmadan önce, başlamak için ihtiyacınız olan her şeye sahip olduğunuzdan emin olalım:

  1. Java Geliştirme Kiti (JDK): Makinenizde JDK’nın yüklü olduğundan emin olun. Bunu şu adresten indirebilirsiniz: Oracle web sitesi .

  2. Java için Aspose.Words: Aspose.Words kütüphanesine ihtiyacınız olacak. En son sürümü şu adresten indirebilirsiniz: Aspose’un sürüm sayfası .

  3. IDE: IntelliJ IDEA veya Eclipse gibi bir Entegre Geliştirme Ortamı (IDE) kodlamayı kolaylaştıracaktır.

  4. Temel Java Bilgisi: Java programlama kavramlarına aşinalık, kod parçacıklarını daha iyi anlamanıza yardımcı olacaktır.

  5. Örnek Veriler: Bu eğitim için, bir veri kaynağını simüle etmek için “List of people.xml” adlı bir XML dosyası kullanacağız. Bu dosyayı test için örnek verilerle oluşturabilirsiniz.

Adım 1: Yeni Bir Belge Oluşturun

Öncelikle tablomuzun bulunacağı yeni bir belge oluşturmamız gerekiyor. Bu, çalışmamızın tuvalidir.

Document doc = new Document();

Burada yeni bir örnek oluşturuyoruzDocument nesne. Bu, tablomuzu oluşturacağımız çalışma belgemiz olarak hizmet edecektir.

Adım 2: DocumentBuilder’ı Başlatın

Daha sonra şunu kullanacağız:DocumentBuilder Belgeyi daha kolay bir şekilde düzenlememize olanak sağlayan sınıf.

DocumentBuilder builder = new DocumentBuilder(doc);

TheDocumentBuilder nesnesi, belgeye tablo, metin ve diğer öğeleri eklemek için yöntemler sağlar.

Adım 3: Sayfa Yönünü Ayarla

Tablomuzun geniş olmasını beklediğimizden sayfa yönünü yatay olarak ayarlayacağız.

doc.getFirstSection().getPageSetup().setOrientation(Orientation.LANDSCAPE);

Bu adım çok önemlidir çünkü tablomuzun sayfaya düzgün bir şekilde oturmasını ve kesilmemesini sağlar.

Adım 4: XML’den Veri Yükle

Şimdi, verilerimizi XML dosyasından birDataTableVerilerimiz buradan geliyor.

DataSet ds = new DataSet();
ds.readXml(getMyDir() + "List of people.xml");
DataTable dataTable = ds.getTables().get(0);

Burada, XML dosyasını okuruz ve veri kümesinden ilk tabloyu alırız. BuDataTable belgemizde görüntülemek istediğimiz verileri tutacaktır.

Adım 5: Tabloyu DataTable’dan içe aktarın

Şimdi heyecan verici kısma geliyoruz: Verilerimizi tablo olarak belgeye aktarmak.

Table table = importTableFromDataTable(builder, dataTable, true);

Yöntemi çağırıyoruzimportTableFromDataTable , geçerekDocumentBuilder , bizimDataTableve sütun başlıklarının eklenip eklenmeyeceğini belirten bir Boole değeri.

Adım 6: Tabloyu Şekillendirin

Masamızı hazırladıktan sonra onu güzel gösterecek bazı düzenlemeler yapabiliriz.

table.setStyleIdentifier(StyleIdentifier.MEDIUM_LIST_2_ACCENT_1);
table.setStyleOptions(TableStyleOptions.FIRST_ROW | TableStyleOptions.ROW_BANDS | TableStyleOptions.LAST_COLUMN);

Bu kod tabloya önceden tanımlanmış bir stil uygulayarak görsel çekiciliğini ve okunabilirliğini artırır.

Adım 7: İstenmeyen Hücreleri Kaldırın

Eğer görüntülemek istemediğiniz sütunlar varsa, örneğin resim sütunu, bunları kolayca kaldırabilirsiniz.

table.getFirstRow().getLastCell().removeAllChildren();

Bu adım, tablomuzun yalnızca ilgili bilgileri göstermesini sağlar.

Adım 8: Belgeyi Kaydedin

Son olarak oluşturulan tablonun bulunduğu belgemizi kaydediyoruz.

doc.save(getArtifactsDir() + "WorkingWithTables.BuildTableFromDataTable.docx");

Bu satır, belgeyi belirtilen dizine kaydeder ve sonuçları incelemenize olanak tanır.

importTableFromDataTable Yöntemi

Daha yakından bakalımimportTableFromDataTable method. Bu method, tablo yapısını oluşturmaktan ve onu verilerle doldurmaktan sorumludur.

Adım 1: Tabloyu Başlatın

Öncelikle belgede yeni bir tablo başlatmamız gerekiyor.

Table table = builder.startTable();

Bu, belgemizde yeni bir tablo başlatır.

Adım 2: Sütun Başlıkları Ekleyin

Sütun başlıklarını eklemek istiyorsak, şunu kontrol ederiz:importColumnHeadings bayrak.

if (importColumnHeadings) {
    // Orijinal biçimlendirmeyi sakla
    boolean boldValue = builder.getFont().getBold();
    int paragraphAlignmentValue = builder.getParagraphFormat().getAlignment();

    // Başlık biçimlendirmesini ayarla
    builder.getFont().setBold(true);
    builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);

    // Sütun adlarını ekle
    for (DataColumn column : dataTable.getColumns()) {
        builder.insertCell();
        builder.writeln(column.getColumnName());
    }

    builder.endRow();

    // Orijinal biçimlendirmeyi geri yükle
    builder.getFont().setBold(boldValue);
    builder.getParagraphFormat().setAlignment(paragraphAlignmentValue);
}

Bu kod bloğu başlık satırını biçimlendirir ve sütun adlarını ekler.DataTable.

Adım 3: Tabloyu Verilerle Doldurun

Şimdi, her satırda döngüye giriyoruzDataTable tabloya veri eklemek için.

for (DataRow dataRow : (Iterable<DataRow>) dataTable.getRows()) {
    for (Object item : dataRow.getItemArray()) {
        builder.insertCell();
        switch (item.getClass().getName()) {
            case "DateTime":
                Date dateTime = (Date) item;
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMMM d, yyyy");
                builder.write(simpleDateFormat.format(dateTime));
                break;
            default:
                builder.write(item.toString());
                break;
        }
    }
    builder.endRow();
}

Bu bölümde farklı veri tiplerini ele alacağız, tarihleri uygun şekilde biçimlendireceğiz ve diğer verileri metin olarak ekleyeceğiz.

Adım 4: Masayı Sonlandırın

Son olarak tüm veriler girildikten sonra tabloyu tamamlıyoruz.

builder.endTable();

Bu satır tablomuzun sonunu işaret ediyor veDocumentBuilder Bu bölümün bittiğini bilmek.

Çözüm

Ve işte karşınızda! Java için Aspose.Words kullanarak bir DataTable’dan bir tablo oluşturmayı başarıyla öğrendiniz. Bu adımları izleyerek, belgelerinizde çeşitli veri kaynaklarına dayalı olarak kolayca dinamik tablolar oluşturabilirsiniz. İster raporlar ister faturalar oluşturun, bu yöntem iş akışınızı kolaylaştıracak ve belge oluşturma sürecinizi geliştirecektir.

SSS

Java için Aspose.Words nedir?

Aspose.Words for Java, Word belgelerini programlı olarak oluşturmak, düzenlemek ve dönüştürmek için güçlü bir kütüphanedir.

Aspose.Words’ü ücretsiz kullanabilir miyim?

Evet, Aspose ücretsiz deneme sürümü sunuyor. Bunu şuradan indirebilirsiniz: Burada .

Aspose.Words’de tabloları nasıl biçimlendirebilirim?

Kütüphane tarafından sağlanan önceden tanımlanmış stil tanımlayıcılarını ve seçeneklerini kullanarak stiller uygulayabilirsiniz.

Tablolara hangi tür verileri ekleyebilirim?

Metin, sayı ve tarih gibi çeşitli veri türlerini ekleyebilir ve bunları uygun şekilde biçimlendirebilirsiniz.

Aspose.Words için desteği nereden alabilirim?

Destek bulabilir ve soru sorabilirsiniz. Aspose forumu .