【问题标题】:XlsxWriter set format on formula cellsXlsxWriter 在公式单元格上设置格式
【发布时间】:2017-02-04 06:45:16
【问题描述】:

在这方面工作了很长时间。

如何设置已写入或将要写入公式的单元格的格式?

除 write_formula() 之外的所有其他 write_() 都包含一个格式参数。

例如:

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")

【问题讨论】:

    标签: python xlsxwriter


    【解决方案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)
    

    【讨论】:

      【解决方案2】:

      格式可以像任何其他数据类型一样应用于 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()
      

      输出:

      【讨论】:

        猜你喜欢
        • 2023-03-24
        • 2013-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多