python kullanarak word belgelerinde tablolar oluşturun

Tablolar, bilgileri ızgara benzeri bir yapıda düzenlemek için Word belgelerinde yaygın olarak kullanılır. Bilgileri satırlar ve sütunlar şeklinde özetlemenizi sağlarlar. Bu yazıda, Python kullanarak programlı olarak Word belgelerinde tablo oluşturmayı öğreneceksiniz. Ayrıca makale, Word belgelerinde iç içe tabloların nasıl oluşturulacağını veya var olan bir tablonun nasıl klonlanacağını ele alacaktır.

Word Belgelerinde Tablo Oluşturmak İçin Python Kitaplığı

Word belgelerinde tablolarla çalışmak için Aspose.Words for Python kullanacağız. Kitaplık, Word belgelerini Python uygulamalarının içinden dinamik olarak oluşturmak ve değiştirmek için tasarlanmıştır. Aşağıdaki pip komutunu kullanarak PyPI kütüphanesini kurabilirsiniz.

pip install aspose-words

Python’da Word Belgesinde Tablo Oluşturma

Aşağıda, Python kullanarak bir Word DOCX belgesinde tablo oluşturma adımları yer almaktadır.

  • Document sınıfından bir nesne oluşturun.
  • DocumentBuilder sınıfından bir nesne oluşturun.
  • DocumentBuilder.starttable() yöntemini kullanarak bir tablo başlatın ve bir nesnedeki tablonun referansını alın.
  • DocumentBuilder.insertcell() yöntemini kullanarak bir hücre ekleyin.
  • DocumentBuilder.cellformat özelliğini kullanarak hücrenin biçimlendirmesini ayarlayın.
  • autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS) yöntemini kullanarak otomatik sığdırmayı ayarlayın.
  • Hücrenin hizalamasını ayarlayın.
  • DocumentBuilder.write() yöntemini kullanarak hücreye metin ekleyin.
  • Hücreleri ve metni hücrelere eklemeyi gerektiği gibi tekrarlayın.
  • Hücreleri eklemeyi tamamladığınızda bir satırı bitirin.
  • Tüm satırları eklediğinizde tabloyu sonlandırın.
  • Document.save() yöntemini kullanarak Word belgesini kaydedin.

Aşağıdaki kod örneği, Python kullanılarak DOCX belgelerinde nasıl tablo oluşturulacağını gösterir.

import aspose.words as aw

# Yeni bir Word belgesi oluşturun.
doc = aw.Document()

# Belge oluşturucu oluşturun.
builder = aw.DocumentBuilder(doc)

# Tabloyu başlatın.
table = builder.start_table()

# Hücre ekle.
builder.insert_cell()

# Tablo genişliğinde biçimlendirme, tabloda en az bir satır bulunduktan sonra uygulanmalıdır.
table.left_indent = 20.0

# Yüksekliği ayarlayın ve başlık satırı için yükseklik kuralını tanımlayın.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

# Hizalama ve yazı tipi ayarlarını belirleyin.
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.font.size = 16
builder.font.name = "Arial"
builder.font.bold = True

builder.cell_format.width = 100.0
builder.write("Header Row,\n Cell 1")

# Bir önceki hücreden devralındığı için bu hücrenin genişliğini belirtmemize gerek yok.
builder.insert_cell()
builder.write("Header Row,\n Cell 2")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Header Row,\n Cell 3")
builder.end_row()

builder.cell_format.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER

# Yüksekliği sıfırlayın ve tablo gövdesi için farklı bir yükseklik kuralı tanımlayın.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()

# Yazı tipi biçimlendirmesini sıfırlayın.
builder.font.size = 12
builder.font.bold = False

builder.write("Row 1, Cell 1 Content")
builder.insert_cell()
builder.write("Row 1, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 1, Cell 3 Content")
builder.end_row()

builder.insert_cell()
builder.cell_format.width = 100.0
builder.write("Row 2, Cell 1 Content")

builder.insert_cell()
builder.write("Row 2, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 2, Cell 3 Content.")
builder.end_row()

# Son masa.
builder.end_table()

# Belgeyi kaydedin.
doc.save("table_formatted.docx")

Yukarıdaki kod örneğini kullanarak oluşturduğumuz tablonun ekran görüntüsü aşağıdadır.

Python’da Bir Word Belgesinde İç İçe Tablo Oluşturma

Aspose.Words for Python ayrıca sorunsuz bir şekilde iç içe geçmiş bir tablo oluşturmanıza olanak tanır. Başka bir deyişle, tablonun bir hücresinde yeni bir tablo oluşturabilirsiniz. Word DOCX dosyasında iç içe tablo oluşturma adımları aşağıda verilmiştir.

  • Document sınıfından bir nesne oluşturun.
  • DocumentBuilder sınıfından bir nesne oluşturun.
  • DocumentBuilder.starttable() yöntemini kullanarak bir tablo başlatın ve bir nesnedeki tablonun referansını alın.
  • DocumentBuilder.insertcell() yöntemini kullanarak bir hücre ekleyin ve bir nesnedeki hücrenin referansını alın.
  • DocumentBuilder.write() yöntemini kullanarak hücreye metin ekleyin.
  • Hücreleri ve metni hücrelere eklemeyi gerektiği gibi tekrarlayın.
  • Tüm satırları eklediğinizde tabloyu sonlandırın.
  • DocumentBuilder.moveto(Cell.firstparagraph) yöntemini kullanarak kontrolü istenen hücrenin içine taşıyın.
  • Hücreleri ekleyerek başka bir tablo oluşturun ve bittiğinde tabloyu sonlandırın.
  • Document.save() yöntemini kullanarak Word belgesini kaydedin.

Aşağıdaki kod örneği, Python kullanılarak bir DOCX belgesinde iç içe geçmiş bir tablonun nasıl oluşturulacağını gösterir.

import aspose.words as aw

# Yeni bir Word belgesi oluşturun.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# Hücre ekle.
cell = builder.insert_cell()
builder.writeln("Outer Table Cell 1")

builder.insert_cell()
builder.writeln("Outer Table Cell 2")

# Bu çağrı, ilk tablo içinde iç içe geçmiş bir tablo oluşturmak için önemlidir. 
# Bu çağrı olmadan, aşağıya eklenen hücreler dış tabloya eklenir.
builder.end_table()

# Dış tablonun ilk hücresine git.
builder.move_to(cell.first_paragraph)

# İç tabloyu oluşturun.
builder.insert_cell()
builder.writeln("Inner Table Cell 1")
builder.insert_cell()
builder.writeln("Inner Table Cell 2")
builder.end_table()

# Belgeyi kaydedin.
doc.save("table_nested.docx")

Yukarıdaki kod örneğinin çıktısı aşağıdadır.

Python’da Bir Word Belgesinde Mevcut Bir Tabloyu Klonlama

Ayrıca bir Word belgesinde var olan bir tabloyu kopyalayabilirsiniz. Aşağıda bu işlemi gerçekleştirmek için adımlar verilmiştir.

  • Document sınıfını kullanarak belgeyi yükleyin.
  • Document.getchild(NodeType.TABLE, int, boolean).astable() yöntemini kullanarak bir nesnedeki tablonun referansını alın.
  • Tablonun nesnesini kullanarak clone(True).astable() yöntemini çağırın ve başka bir nesnede klonlanmış tablonun referansını alın.
  • Table.parentnode.insertafter() yöntemini kullanarak klonlanmış tablo ekleyin.
  • Table.parentnode.insertafter(Paragraph(Document), Table) yöntemini kullanarak tablolar arasına boş bir paragraf ekleyin.
  • Document.save() yöntemini kullanarak Word belgesini kaydedin.

Aşağıdaki kod örneği, Python kullanılarak bir Word DOCX belgesindeki bir tablonun nasıl kopyalanacağını gösterir.

import aspose.words as aw

# Word belgesini yükleyin.
doc = aw.Document("table_formatted.docx")

# İstenen tablonun referansını alın.
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Tabloyu kopyalayın ve orijinal tablodan sonra belgeye ekleyin.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# İki tablo arasına boş bir paragraf ekleyin,
# aksi takdirde, kaydedildikten sonra bir araya getirileceklerdir.
table.parent_node.insert_after(aw.Paragraph(doc), table)

# Belgeyi kaydedin.
doc.save("table_clone.docx")

Aşağıdaki ekran görüntüsü, bir Word belgesindeki klonlanmış tabloyu göstermektedir.

Ücretsiz API Lisansı Alın

Aspose.Words for Python’u değerlendirme sınırlamaları olmadan kullanmak için bir geçici lisans alabilirsiniz.

Çözüm

Bu yazıda, Python kullanarak Word belgelerinde tablo oluşturmayı öğrendiniz. Ayrıca, Word belgelerinde iç içe tablolar oluşturmayı veya var olan tabloları dinamik olarak klonlamayı gördünüz. Ayrıca, diğer özellikleri keşfetmek için Aspose.Words for Python’un belgelerini ziyaret edebilirsiniz. Herhangi bir sorunuz olursa forumumuz aracılığıyla bize bildirmekten çekinmeyin.

Ayrıca bakınız

Bilgi: Bir PowerPoint sunumundan bir Word belgesi almanız gerekirse, Aspose Sunumdan Word Belgesine dönüştürücü kullanabilirsiniz.