В этой статье мы будем работать с таблицами в Python, мы покажем вам самый простой способ создать таблицу и манипулировать данными внутри таблицы. Используя наш API, вы можете манипулировать таблицами и экспортировать их в различные форматы, такие как Word, Excel, PDF и т. д.
Мы представим Aspose.Words для Python через .NET и сосредоточимся на создании и вставке таблиц с помощью этот API.

Aspose.Words для Python через .NET — это библиотека классов, предназначенная для чтения и обработки документов различных типов, таких как Microsoft Word (DOCX, DOC, ODT), Web (Markdown, HTML), PDF и других. С помощью этого Python API вы можете создавать, редактировать, визуализировать и преобразовывать файлы Word в различные форматы, создавать отчеты и визуализировать свои данные без необходимости использования внешнего программного обеспечения.
Более 100 классов Python для обработки документов и данных. операции форматирования в вашем распоряжении.

Работа с таблицами в Python

Таблицы позволяют организовать большие объемы информации и отображать ее в виде сетки со строками и столбцами. Они очень полезны при отображении данных во вкладках, так как позволяют лучше контролировать структуру содержимого.
Таблицы – это структурированные наборы данных, состоящие из строк и столбцов. Они полностью поддерживаются в нашей библиотеке, и вы можете легко редактировать, изменять, добавлять и удалять таблицы.
Ниже мы покажем вам, как создать новую таблицу с помощью Python, а в нашей документации вы можете увидеть, как применять форматирование, работа со стилем таблиц, работа со столбцами и строками, объединение и разделение таблиц.

Создание таблиц в Python

Наша библиотека предлагает различные методы создания новых таблиц в документе, и в этой статье мы увидим, как использовать некоторые из этих методов.
Значения вновь созданной таблицы аналогичны значениям по умолчанию в Microsoft Word.

Вы можете вставить таблицу с помощью класса DocumentBuilder и следующего метода построения таблицы:
DocumentBuilder.start_table
DocumentBuilder.insert_cell
DocumentBuilder.end_row
DocumentBuilder.end_table
DocumentBuilder.writeln

Создайте таблицу в Python, выполнив следующие 7 шагов:

  1. Запустите таблицу с помощью DocumentBuilder.start_table.
  2. Используйте DocumentBuilder.insert_cell, чтобы вставить ячейку в таблицу, и используйте DocumentBuilder.cell_format, чтобы задать форматирование ячейки.
  3. Используйте DocumentBuilder для вставки содержимого ячейки.
  4. Просто повторяйте шаги 2 и 3, пока не закончите ряд.
  5. Вы можете вызвать метод DocumentBuilder.end_row для завершения строки и использовать DocumentBuilder.row_format для форматирования строки.
  6. После этого просто повторяйте шаги со 2 по 5, пока не заполните таблицу.
  7. Используйте метод DocumentBuilder.end_table, чтобы закончить таблицу.

Более подробно о классе DocumentBuilder и методах создания таблиц описано в нашей документации.

В приведенном ниже примере вы можете увидеть, как создать простую таблицу с форматированием по умолчанию с помощью DocumentBuilder.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
    
# Start building the table.
builder.start_table()
builder.insert_cell()
builder.write("Row 1, Cell 1 Content.")
    
# Build the second cell.
builder.insert_cell()
builder.write("Row 1, Cell 2 Content.")
    
# Call the following method to end the row and start a new row.
builder.end_row()

# Build the first cell of the second row.
builder.insert_cell()
builder.write("Row 2, Cell 1 Content")

# Build the second cell.
builder.insert_cell()
builder.write("Row 2, Cell 2 Content.")
builder.end_row()

# Signal that we have finished building the table.
builder.end_table()

doc.save(docs_base.artifacts_dir + "WorkingWithTables.create_simple_table.docx")

Создайте форматированную таблицу с помощью DocumentBuilder с приведенным ниже примером кода.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

table = builder.start_table()
builder.insert_cell()

# Table wide formatting must be applied after at least one row is present in the table.
table.left_indent = 20.0

# Set height and define the height rule for the header row.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

builder.cell_format.shading.background_pattern_color = drawing.Color.from_argb(198, 217, 241)
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")

# We don't need to specify this cell's width because it's inherited from the previous cell.
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.shading.background_pattern_color = drawing.Color.white
builder.cell_format.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER

# Reset height and define a different height rule for table body.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()
    
# Reset font formatting.
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()
builder.end_table()

doc.save(docs_base.artifacts_dir + "WorkingWithTables.formatted_table.docx")

Вставка существующей таблицы

Если у вас уже есть таблица в документе и вы хотите добавить копию этой таблицы, чтобы внести в нее какие-то изменения, самый простой способ продублировать таблицу — использовать метод Table.clone, чтобы сохранить все форматирование.< br /> В приведенном ниже примере вы можете увидеть, как вставить таблицу, и если вам нужен файл шаблона этого примера, вы можете скачать его здесь.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Tables.docx")

table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Clone the table and insert it into the document after the original.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# Insert an empty paragraph between the two tables,
# or else they will be combined into one upon saving this has to do with document validation.
table.parent_node.insert_after(aw.Paragraph(doc), table)
    
doc.save(docs_base.artifacts_dir + "WorkingWithTables.clone_complete_table.docx")

Если у вас есть вопросы о таблицах, Aspose.Words для Python через продукты .NET и вам нужна помощь наших разработчиков платной поддержки для реализации нашего API в вашем проекте, не стесняйтесь связаться с нами.