Python XlsxWriter - 表格



在 MS Excel 中,表格是一组已被分组为单个实体的单元格。它可以从公式中引用,并且具有共同的格式属性。可以在工作表表格中定义多个功能,例如列标题、自动筛选器、总计行、列公式。

add_table() 方法

工作表方法add_table()用于将单元格区域添加为表格。

worksheet.add_table(first_row, first_col, last_row, last_col, options)

两种方法,标准“A1”或“行/列”表示法都允许用于指定范围。add_table()方法可以接受一个或多个以下可选参数。请注意,除了范围参数外,其他参数都是可选的。如果未给出,则会创建一个空表格。

示例

数据

此参数可用于指定表格单元格中的数据。请查看以下示例 -

import xlsxwriter
wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()

data = [
   ['Namrata',  75, 65, 80],
   ['Ravi',     60, 70, 80],
   ['Kiran',    65, 75, 85],
   ['Karishma', 55, 65, 75],
]
ws.add_table("A1:D4", {'data':data})

wb.close()

输出

以下是结果 -

Add Table

header_row(标题行)

此参数可用于打开或关闭表格中的标题行。默认情况下为打开。标题行将包含默认标题,例如列 1、列 2 等。您可以使用 columns 参数设置所需的标题。

示例

此属性用于设置列标题。

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()

data = [
   ['Namrata',  75, 65, 80],
   ['Ravi',     60, 70, 80],
   ['Kiran',    65, 75, 85],
   ['Karishma', 55, 65, 75],
]

ws.add_table("A1:D4",
{'data':data,
   'columns': [
   {'header': 'Name'},
   {'header': 'physics'},
   {'header': 'Chemistry'},
   {'header': 'Maths'}]
})
wb.close()

输出

标题行现在设置为如下所示 -

Header Row

autofilter(自动筛选)

此参数默认情况下为 ON。当设置为 OFF 时,标题行不会显示下拉箭头以设置筛选条件。

名称

在 Excel 工作表中,表格命名为 Table1、Table2 等。name 参数可用于根据需要设置表格的名称。

ws.add_table("A1:E4", {'data':data, 'name':'marklist'})

公式

可以通过在 columns 选项中指定 formula 子属性来创建包含公式的列。

示例

在以下示例中,表格的 name 属性设置为“marklist”。“总计”列 E 的公式执行分数的总和,并分配 formula 子属性的值。

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()

data = [
   ['Namrata',  75, 65, 80],
   ['Ravi',     60, 70, 80],
   ['Kiran',    65, 75, 85],
   ['Karishma', 55, 65, 75],
]
formula = '=SUM(marklist[@[physics]:[Maths]])'
tbl = ws.add_table("A1:E5",
{'data': data,
   'autofilter': False,
   'name': 'marklist',
   'columns': [
      {'header': 'Name'},
      {'header': 'physics'},
      {'header': 'Chemistry'},
      {'header': 'Maths'},
      {'header': 'Total', 'formula': formula}
   ]
})
wb.close()

输出

执行以上代码后,工作表将显示包含分数总和的总计列。

AutoFilter
广告

© . All rights reserved.