Python XlsxWriter 表
在 MS Excel 中,表格是已分组为单个实体的一系列单元格。它可以从公式中引用并具有通用的格式属性。可以在工作表中定义列标题、自动过滤器、总行数、列公式等多种功能。
add_table() 方法
工作表法 添加表() 用于将单元格区域添加为表格。
worksheet.add_table(first_row, first_col, last_row, last_col, options)
两种方法,标准 ' A1 ' or ' 行列 ' 符号可用于指定范围。这 添加表() 方法可以采用以下一个或多个可选参数。请注意,除了 range 参数外,其他参数都是可选的。如果没有给出,则创建一个空表。
例子
data
该参数可用于指定表格单元格中的数据。看下面的例子:
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()
结果如下:
header_row
此参数可用于打开或关闭表格中的标题行。默认开启。标题行将包含默认标题,例如第 1 列、第 2 列等。你可以使用 columns 参数设置所需的标题。
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()
标题行现在设置如下:
自动过滤器
默认情况下,此参数为 ON。当设置为 OFF 时,标题行不显示用于设置过滤条件的下拉箭头。
Name
在 Excel 工作表中,表被命名为 Table1、Table2 等。 name 参数可用于根据需要设置表的名称。
ws.add_table("A1:E4", {'data':data, 'name':'marklist'})
Formula
可以通过在列选项中指定公式子属性来创建具有公式的列。
例子
在以下示例中,表的名称属性设置为“marklist”。 “总计”列 E 的公式执行分数求和,并分配公式子属性的值。
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()
执行上述代码时,工作表显示 Total 带有分数总和的列。