Aplicar estilo de tabela
Um estilo de tabela define um conjunto de formatação que pode ser facilmente aplicado a uma tabela. Formatações como bordas, sombreamento, alinhamento e fonte podem ser definidas em um estilo de tabela e aplicadas a muitas tabelas para obter uma aparência consistente.
Aspose.Words suporta a aplicação de um estilo de tabela a uma tabela e também a leitura de propriedades de qualquer estilo de tabela. Os estilos de tabela são preservados durante o carregamento e salvamento das seguintes maneiras:
- Os estilos de tabela nos formatos DOCX e WordML são preservados ao carregar e salvar nesses formatos
- Os estilos de tabela são preservados ao carregar e salvar no formato DOC (mas não em qualquer outro formato)
- Ao exportar para outros formatos, renderizar ou imprimir, os estilos da tabela são expandidos para formatação direta na tabela, portanto toda a formatação é preservada
Crie um estilo de tabela
O usuário pode criar um novo estilo e adicioná-lo à coleção de estilos. O método Add é usado para criar um novo estilo de tabela.
O exemplo de código a seguir mostra como criar um novo estilo de tabela definido pelo usuário:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
doc = aw.Document() | |
builder = aw.DocumentBuilder(doc) | |
table = builder.start_table() | |
builder.insert_cell() | |
builder.write("Name") | |
builder.insert_cell() | |
builder.write("Value") | |
builder.end_row() | |
builder.insert_cell() | |
builder.insert_cell() | |
builder.end_table() | |
table_style = doc.styles.add(aw.StyleType.TABLE, "MyTableStyle1").as_table_style() | |
table_style.borders.line_style = aw.LineStyle.DOUBLE | |
table_style.borders.line_width = 1 | |
table_style.left_padding = 18 | |
table_style.right_padding = 18 | |
table_style.top_padding = 12 | |
table_style.bottom_padding = 12 | |
table.style = table_style | |
doc.save(ARTIFACTS_DIR + "WorkingWithTableStylesAndFormatting.create_table_style.docx") |
Copiar um estilo de tabela existente
Se necessário, você pode copiar um estilo de tabela que já existe em um determinado documento para sua coleção de estilos usando o método AddCopy
.
É importante saber que com esta cópia os estilos vinculados também são copiados.
O exemplo de código a seguir mostra como importar um estilo de um documento para outro:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
src_doc = aw.Document() | |
# Create a custom style for the source document. | |
src_style = src_doc.styles.add(aw.StyleType.PARAGRAPH, "MyStyle") | |
src_style.font.color = drawing.Color.red | |
# Import the source document's custom style into the destination document. | |
dst_doc = aw.Document() | |
new_style = dst_doc.styles.add_copy(src_style) | |
# The imported style has an appearance identical to its source style. | |
self.assertEqual("MyStyle", new_style.name) | |
self.assertEqual(drawing.Color.red.to_argb(), new_style.font.color.to_argb()) |
Aplicar um estilo de tabela existente
Aspose.Words fornece um TableStyle herdado da classe Style. TableStyle facilita ao usuário a aplicação de diferentes opções de estilo, como sombreamento, preenchimento, recuo, CellSpacing e Font, etc.
Além disso, Aspose.Words fornece a classe StyleCollection e algumas propriedades da classe Table
para especificar com qual estilo de tabela trabalharemos: Style, StyleIdentifier, StyleName e StyleOptions.
Aspose.Words também fornece a classe ConditionalStyle que representa a formatação especial aplicada a alguma área de uma tabela com um estilo de tabela atribuído, e o ConditionalStyleCollection que representa uma coleção de objetos ConditionalStyle. Esta coleção contém um conjunto permanente de itens que representam um item para cada valor do tipo de enumeração ConditionalStyleType. A enumeração ConditionalStyleType define todas as áreas possíveis da tabela para as quais a formatação condicional pode ser definida em um estilo de tabela.
Nesse caso, a formatação condicional pode ser definida para todas as áreas de tabela possíveis definidas no tipo de enumeração ConditionalStyleType.
O exemplo de código a seguir mostra como definir a formatação condicional para a linha de cabeçalho da tabela:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
doc = aw.Document() | |
builder = aw.DocumentBuilder(doc) | |
table = builder.start_table() | |
builder.insert_cell() | |
builder.write("Name") | |
builder.insert_cell() | |
builder.write("Value") | |
builder.end_row() | |
builder.insert_cell() | |
builder.insert_cell() | |
builder.end_table() | |
table_style = doc.styles.add(aw.StyleType.TABLE, "MyTableStyle1").as_table_style() | |
table_style.conditional_styles.first_row.shading.background_pattern_color = drawing.Color.green_yellow | |
table_style.conditional_styles.first_row.shading.texture = aw.TextureIndex.TEXTURE_NONE | |
table.style = table_style | |
doc.save(ARTIFACTS_DIR + "WorkingWithTableStylesAndFormatting.define_conditional_formatting.docx") |
Você também pode escolher em quais partes da tabela aplicar estilos, como primeira coluna, última coluna, linhas com faixas. Eles estão listados na enumeração TableStyleOptions e são aplicados por meio da propriedade StyleOptions. A enumeração TableStyleOptions permite uma combinação bit a bit desses recursos.
O exemplo de código a seguir mostra como criar uma nova tabela com um estilo de tabela aplicado:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
doc = aw.Document() | |
builder = aw.DocumentBuilder(doc) | |
table = builder.start_table() | |
# We must insert at least one row first before setting any table formatting. | |
builder.insert_cell() | |
# Set the table style used based on the unique style identifier. | |
table.style_identifier = aw.StyleIdentifier.MEDIUM_SHADING1_ACCENT1 | |
# Apply which features should be formatted by the style. | |
table.style_options = aw.tables.TableStyleOptions.FIRST_COLUMN | aw.tables.TableStyleOptions.ROW_BANDS | aw.tables.TableStyleOptions.FIRST_ROW | |
table.auto_fit(aw.tables.AutoFitBehavior.AUTO_FIT_TO_CONTENTS) | |
builder.writeln("Item") | |
builder.cell_format.right_padding = 40 | |
builder.insert_cell() | |
builder.writeln("Quantity (kg)") | |
builder.end_row() | |
builder.insert_cell() | |
builder.writeln("Apples") | |
builder.insert_cell() | |
builder.writeln("20") | |
builder.end_row() | |
builder.insert_cell() | |
builder.writeln("Bananas") | |
builder.insert_cell() | |
builder.writeln("40") | |
builder.end_row() | |
builder.insert_cell() | |
builder.writeln("Carrots") | |
builder.insert_cell() | |
builder.writeln("50") | |
builder.end_row() | |
doc.save(ARTIFACTS_DIR + "WorkingWithTableStylesAndFormatting.build_table_with_style.docx") |
As imagens abaixo mostram uma representação do Table Styles em Microsoft Word e suas propriedades correspondentes em Aspose.Words.
Trabalhando com estilos de tabela
Um estilo de tabela define um conjunto de formatação que pode ser facilmente aplicado a uma tabela. Formatações como bordas, sombreamento, alinhamento e fonte podem ser definidas em um estilo de tabela e aplicadas a muitas tabelas para obter uma aparência consistente.
Aspose.Words suporta a aplicação de um estilo de tabela a uma tabela e também a leitura de propriedades de qualquer estilo de tabela. Os estilos de tabela são preservados durante o carregamento e salvamento das seguintes maneiras:
- Os estilos de tabela nos formatos DOCX e WordML são preservados ao carregar e salvar nesses formatos.
- Os estilos de tabela são preservados ao carregar e salvar no formato DOC (mas não em qualquer outro formato).
- Ao exportar para outros formatos, renderizar ou imprimir, os estilos de tabela são expandidos para formatação direta na tabela para que toda a formatação seja preservada.
Atualmente, não é possível criar novos estilos de tabela. Você só pode aplicar estilos de tabela integrados ou estilos de tabela personalizados que já existem no documento a uma tabela
Pegue a formatação do estilo de tabela e aplique-a como formatação direta
Aspose.Words também fornece o método ExpandTableStylesToDirectFormatting para pegar a formatação encontrada em um estilo de tabela e expandi-la nas linhas e células da tabela como formatação direta. Tente combinar a formatação com o estilo da tabela e o estilo da célula.
O exemplo de código a seguir mostra como expandir a formatação de estilos para linhas e células da tabela como formatação direta:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git. | |
doc = aw.Document(MY_DIR + "Tables.docx") | |
# Get the first cell of the first table in the document. | |
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table() | |
first_cell = table.first_row.first_cell | |
# First print the color of the cell shading. | |
# This should be empty as the current shading is stored in the table style. | |
cell_shading_before = first_cell.cell_format.shading.background_pattern_color | |
print("Cell shading before style expansion:", cell_shading_before) | |
doc.expand_table_styles_to_direct_formatting() | |
# Now print the cell shading after expanding table styles. | |
# A blue background pattern color should have been applied from the table style. | |
cell_shading_after = first_cell.cell_format.shading.background_pattern_color | |
print("Cell shading after style expansion:", cell_shading_after) |