Table — Aspose.Cells FOSS for Python API Reference
aspose-cells-foss représente les tables structurées d’Excel (ListObjects) via le Table classe et le TableCollection accessible en tant que ws.list_objects. Les tables offrent des plages nommées, un filtre automatique, des lignes d’en‑tête et un style de bandes de lignes intégré au format XLSX.
Examples: aspose.cells_foss
from aspose.cells_foss import TableStyleInfo, TableColumnTableStyleInfo
Décrit le style visuel appliqué à un tableau (bandes, mise en évidence de la première/dernière colonne).
Examples
TableStyleInfo()Examples
| Examples | Examples | Examples |
|---|---|---|
name | str | Nom du style de table Excel (p. ex., "TableStyleMedium9"). |
show_first_column | bool | True pour appliquer un format spécial à la première colonne. |
show_last_column | bool | True pour appliquer un format spécial à la dernière colonne. |
show_row_stripes | bool | True pour appliquer un banding de lignes alternées. |
show_column_stripes | bool | True pour appliquer un banding de colonnes alternées. |
TableColumn
Décrit une colonne unique au sein d’un tableau.
Examples
TableColumn(col_id: int, name: str)| Examples | Examples | Examples |
|---|---|---|
col_id | int | 1-based column identifier within the table (not the worksheet column index). |
name | str | Texte d’en‑tête de colonne. Doit être unique au sein de la table. |
Examples
| Examples | Examples | Examples |
|---|---|---|
id | int | Identifiant de colonne (lecture seule). |
name | str | Texte d’en-tête de colonne. |
totals_row_function | str | Fonction d’agrégation affichée dans la ligne des totaux : 'none', 'sum', 'average', 'count', 'countNums', 'max', 'min', 'stdDev', 'var', 'custom'. |
totals_row_label | str | Texte d’étiquette affiché dans la cellule des totaux lorsque totals_row_function est 'none'. |
totals_row_formula | str | Formule personnalisée utilisée lorsque totals_row_function est 'custom'. |
Examples
Table les objets ne sont pas construits directement. Utilisez ws.list_objects.add(...) ou ws.list_objects.add_with_range(...).
Examples
| Examples | Examples | Examples |
|---|---|---|
name | str | Nom de table interne (doit être unique dans le classeur, sans espaces). |
display_name | str | Nom d’affichage affiché dans la zone de nom d’Excel. |
ref | str | La plage de cellules couverte par le tableau (p. ex., "A1:D10"). |
has_headers | bool | True si la première ligne de la plage contient les en-têtes de colonne. |
show_totals_row | bool | True pour afficher une ligne de totaux d’agrégation en bas du tableau. |
show_auto_filter | bool | True pour afficher les flèches déroulantes du filtre automatique dans la ligne d’en-tête. |
table_style_info | TableStyleInfo | Paramètres de style visuel (bandes, colonnes en surbrillance). |
columns | list[TableColumn] | Liste ordonnée de TableColumn objets (un par colonne du tableau). |
TableCollection
TableCollection est accessible en tant que ws.list_objects. Il gère tous les tableaux structurés d’une feuille de calcul.
Examples
add
ws.list_objects.add(
start_row: int,
start_col: int,
end_row: int,
end_col: int,
has_headers: bool = True,
name: str | None = None
) -> TableCrée un tableau sur la plage de cellules donnée. Tous les indices sont 0-based. Si name est None, un nom est généré automatiquement (par ex., "Table1").
add_with_range
ws.list_objects.add_with_range(
cell_range: str,
name: str | None = None,
has_headers: bool = True
) -> TableCrée un tableau à partir d’une chaîne de plage de style A1 (par ex., "A1:D10"). Plus lisible que add() pour les plages codées en dur.
Propriétés et itération
| Examples | Examples |
|---|---|
count | Nombre de tableaux sur cette feuille de calcul (lecture seule). |
__len__() | Examples count. |
__iter__() | Itère sur tous les Table objets. |
__getitem__(index) | Renvoie le Table à base zéro index. |
Examples
L’exemple suivant écrit un jeu de données d’inventaire de produits et le convertit en un tableau Excel stylisé avec une ligne de totaux.
from aspose.cells_foss import Workbook
wb = Workbook()
ws = wb.worksheets[0]
ws.name = "Inventory"
# Write header and data rows
headers = ["SKU", "Product", "Qty", "Unit Price"]
rows = [
["A001", "Widget Alpha", 150, 12.99],
["A002", "Widget Beta", 80, 24.50],
["A003", "Gadget Gamma", 45, 49.99],
["A004", "Gadget Delta", 210, 8.75],
]
for col, h in enumerate(headers):
ws.cells[0][col].put_value(h)
for row_i, row in enumerate(rows, start=1):
for col_i, val in enumerate(row):
ws.cells[row_i][col_i].put_value(val)
# Create a table over A1:D5
table = ws.list_objects.add_with_range("A1:D5", name="InventoryTable")
# Configure style
table.table_style_info.name = "TableStyleMedium9"
table.table_style_info.show_row_stripes = True
table.table_style_info.show_first_column = False
table.table_style_info.show_last_column = False
# Add a totals row with sum on Qty and Unit Price columns
table.show_totals_row = True
table.columns[2].totals_row_function = "sum" # Qty
table.columns[3].totals_row_function = "sum" # Unit Price
table.columns[0].totals_row_label = "Total"
wb.save("inventory_table.xlsx")