Python XlsxWriter - 单元格符号和范围
工作簿中的每个工作表都是由大量单元格组成的网格,每个单元格可以存储一条数据 - 值或公式。 网格中的每个单元格都由其行号和列号标识。
在 Excel 的标准单元格寻址中,列由字母 A、B、C、...、Z、AA、AB 等标识,行从 1 开始编号。
每个单元格的地址都是字母数字,其中字母部分对应列,数字对应行。 例如,地址"C5"指向"C"列和"5"行的单元格。
单元格符号
标准 Excel 使用列字母和基于 1 的行的字母数字序列。 XlsxWriter 支持标准的 Excel 表示法(A1 表示法)以及 行-列 表示法,后者对行和列使用从零开始的索引。
示例
在下面的示例中,使用 Excel 的标准单元格地址将字符串"Hello world"写入 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()
输出
使用 Excel 软件打开 hello.xlsx 文件。
编号的行-列表示法在以编程方式引用单元格时特别有用。 在以下代码中,列表列表中的数据必须写入工作表中的一系列单元格。 这是通过两个嵌套循环实现的,外部循环表示行号,内部循环表示列号。
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])
使用下面代码中使用的工作表对象的 write_row() 方法可以实现相同的结果 −
for row in range(len(data)): ws.write_row(6+row,0, data[row])
工作表对象具有 add_table() 方法,可将数据写入范围并转换为 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()
输出
执行上述程序并使用Excel软件打开ex1.xlsx。