2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Python Excel操作模块XlsxWriter之写入数组公式worksheet.write_array_formula()

Python Excel操作模块XlsxWriter之写入数组公式worksheet.write_array_formula()

时间:2021-02-07 04:37:58

相关推荐

Python Excel操作模块XlsxWriter之写入数组公式worksheet.write_array_formula()

worksheet.write_array_formula()

write_array_formula(first_row,first_col,last_row,last_col,formula[,cell_format[,value]])

向工作表单元格写入数组公式。

参数:

first_row(int) - 选区的第一行。(索引全是从0开始计数)first_col(int) - 选区的第一列。last_row(int) - 选区的最后一行。last_col(int) - 选区的最后一列。formula(string) - 写入单元格的数组公式。cell_format(Format) - 可选的格式对象。value-可选的结果。公式计算后的值。 write_array_formula()方法向单元格选区内写入数组公式。在Excel里数组公式是指向一组值执行计算的公式。它可以返回单个值或者一系列值。

数组公式的特征的是公式两边由一对花括号包围: {=SUM(A1:B1*A2:B2)}。

对于返回一系列值的数组公式,你必须明确地指定返回值写到哪个区域:

worksheet.write_array_formula('A1:A3', '{=TREND(C1:C3,B1:B3)}')worksheet.write_array_formula(0, 0, 2, 0, '{=TREND(C1:C3,B1:B3)}')

如果数组公式返回的是单个值,那么第一个(first_)和最后一个(last_)参数应当是一样的:

worksheet.write_array_formula('A1:A1', '{=SUM(B1:C1*B2:C2)}')

然而,在这种情况下,直接使用write_formula()或write()方法更容易:

# 和上面的例子一样但更简洁。worksheet.write('A1', '{=SUM(B1:C1*B2:C2)}')worksheet.write_formula('A1', '{=SUM(B1:C1*B2:C2)}')

如上所示,行-列和A1表示法都支持。

cell_format参数用于向单元格应用格式。这个参数是可选的,但在使用时,它必须是一个有效的格式对象。

如有需要,指定公式的计算结果也是可行的(请看之前write_formula()方法中对于公式和value参数的讨论)。然而,使用此参数只会将单个值写入结果数组的左上角单元格。

例:数组公式

这是一个返回一个或多个返回值的数组公式的例子。

######################################################################### Example of how to use Python and the XlsxWriter module to write# simple array formulas.## Copyright -, John McNamara, jmcnamara@#import xlsxwriter# 创建一个新工作簿文件并添加一个工作表workbook = xlsxwriter.Workbook('array_formula.xlsx')worksheet = workbook.add_worksheet()# 写入一些测试数据。worksheet.write('B1', 500)worksheet.write('B2', 10)worksheet.write('B5', 1)worksheet.write('B6', 2)worksheet.write('B7', 3)worksheet.write('C1', 300)worksheet.write('C2', 15)worksheet.write('C5', 4)worksheet.write('C6', 21003)worksheet.write('C7', 10000)# 写入一个返回单个值的数组公式worksheet.write_formula('A1', '{=SUM(B1:C1*B2:C2)}')# 和上面的例子一样但更冗长worksheet.write_array_formula('A2:A2', '{=SUM(B1:C1*B2:C2)}')# 写入一个返回一系列值的数组公式worksheet.write_array_formula('A5:A7', '{=TREND(C5:C7,B5:B7)}')workbook.close()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。