Knowledgebase

Таблиці у Python | Aspose

У цій статті ми працюватимемо з таблицями у Python, покажемо найпростіший спосіб створити таблицю та маніпулювати даними в ній. За допомогою нашого API ви можете редагувати таблиці та експортувати їх у різні формати, такі як Word, Excel, PDF тощо.
Ми представимо Aspose.Words for Python via .NET і зосередимося на створенні та вставці таблиць за допомогою цього API.

Tables in Python

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

Робота з таблицями у Python

Таблиці дозволяють організовувати великі обсяги інформації та відображати її у вигляді сітки з рядками та стовпцями. Вони дуже корисні при відображенні табульованих даних, оскільки забезпечують кращий контроль над оформленням вмісту.
Таблиці – це структуровані набори даних, що складаються з рядків і стовпців. Вони повністю підтримуються в нашій бібліотеці, і ви можете легко редагувати, змінювати, додавати та видаляти таблиці.
Нижче ми покажемо, як створити нову таблицю за допомогою Python, а в нашій документації ви можете ознайомитися з тим, як застосувати форматування , працювати з TableStyle , працювати з колонками та рядками , та об’єднувати та розділяти таблиці .

Створення таблиць у Python

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

Table property Python

Ви можете вставити таблицю, використовуючи DocumentBuilder class , та наступні методи для її побудови:
DocumentBuilder.start_table
DocumentBuilder.insert_cell
DocumentBuilder.end_row
DocumentBuilder.end_table
DocumentBuilder.writeln

Build table methods Python

Створіть таблицю у 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 , який зберігає все форматування.
У наведеному нижче прикладі показано, як вставити таблицю, а шаблон файлу прикладу можна завантажити тут .

# 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 for Python via .NET та потрібна допомога від наших розробників Платної Підтримки , щоб впровадити API у ваш проєкт, не соромтеся зв’язатися з нами .