Python XlsxWriter 单元格符号和范围


工作簿中的每个工作表都是由大量单元格组成的网格,每个单元格都可以存储一条数据——值或公式。网格中的每个单元格都由其行号和列号标识。

在 Excel 的标准单元格寻址中,列由字母 A、B、C、...、Z、AA、AB 等标识,行从 1 开始编号。

每个单元格的地址都是字母数字的,其中字母部分对应于列,数字对应于行。例如,地址“C5”指向列“C”和行号“5”中的单元格。

Cell Notations1

单元符号


标准 Excel 使用列字母和从 1 开始的行的字母数字序列。 XlsxWriter 支持标准 Excel 表示法 ( A1 符号)以及 行列 对行和列都使用从零开始的索引的表示法。

例子

在以下示例中,字符串“Hello world”使用 Excel 的标准单元格地址写入 A1 单元格,而“Welcome to XLSXWriter”使用行列表示法写入单元格 C5。

import xlsxwriter
wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()
ws.write('A1', 'Hello world')           # A1 notation
ws.write(4,2,"Welcome to XLSXWriter")   # Row-column notation
wb.close()

Open the 你好.xlsx 使用 Excel 软件生成文件。

Cell Notations2

编号的 行列 以编程方式引用单元格时,表示法特别有用。在以下代码中,列表列表中的数据必须写入工作表中的单元格区域。这是通过两个嵌套循环实现的,外部循环表示行号,内部循环表示列号。

data = [
    ['Name', 'Physics', 'Chemistry', 'Maths', 'Total'],
    ['Ravi', 60, 70, 80],
    ['Kiran', 65, 75, 85],
    ['Karishma', 55, 65, 75],
]
for row in range(len(data)):
    for col in range(len(data[row])):
        ws.write(row, col, data[row][col])

通过使用可以达到相同的结果 写行() 下面代码中使用的工作表对象的方法:

for row in range(len(data)):
    ws.write_row(6+row,0, data[row])

工作表对象有 添加表() 将数据写入范围并转换为 Excel 范围的方法,在顶行显示自动筛选下拉箭头。

ws.add_table('G6:J9', {'data': data, 'header_row':True})

例子

以上三个代码的输出都可以通过下面的代码进行验证,如下图所示:

import xlsxwriter

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

data = [
    ['Name', 'Physics', 'Chemistry', 'Maths', 'Total'],
    ['Ravi', 60, 70, 80],
    ['Kiran', 65, 75, 85],
    ['Karishma', 55, 65, 75],
]
for row in range(len(data)):
    for col in range(len(data[row])):
        ws.write(row, col, data[row][col])
      
for row in range(len(data)):
    ws.write_row(6+row,0, data[row])
   
ws.add_table('G6:J9', {'data': data, 'header_row':False})

wb.close()

执行上述程序并打开 ex1.xlsx 使用 Excel 软件。

Cell Notations3