2017-02-03 46 views
1

对此做了很多工作。公式单元格上的XlsxWriter设置格式

如何设置一个单元格的格式,我可能已经写了一个公式或将要编写一个公式?

除write_formula()外,其他每个write_()都包含一个format参数。

例如:

ws.write_number(1,1,quantity, fmt) 
ws.write_number(1,2,price, fmt) 
# ws.write_formula("C1","=A1*B1",fmt) <-- doesn't exists 
ws.write_formula("C1","=A1*B1") 

回答

1

这工作:

extendedprice = (quantity*price) 
ws.write_formula("C1", "=A1*B1", extendedprice, fmt) 

我甚至想出我可以:

ws.write_number(1,1,quantity, fmt) 
if (<price has an error>): 
    ws.write_number(1,2,"n/a",fmt) 
    ws.write_formula("C1", "=A1*B1", "n/a", fmt) 
else: 
    ws.write_number(1,2,price,fmt) 
    ws.write_formula("C1", "=A1*B1", (quantity*price), fmt) 
0

甲格式可以在被施加到公式与XlsxWriter与任何其他数据类型相同的方式:

import xlsxwriter 

workbook = xlsxwriter.Workbook('test.xlsx') 
worksheet = workbook.add_worksheet() 

my_format = workbook.add_format({'bold': True, 'color': 'red'}) 

worksheet.write(0, 0, 'Hello', my_format) 
worksheet.write(1, 0, 123,  my_format) 
worksheet.write(2, 0, '=1+1', my_format) 

worksheet.write('A4', 'World', my_format) 
worksheet.write('A5', 456,  my_format) 
worksheet.write('A6', '=2+2', my_format) 

workbook.close() 

输出:

enter image description here