如何使用xlsxwriter将格式应用为“文本”和“会计”

时间:2015-04-19 08:31:20

标签: python-2.7 xlsxwriter

我一直在使用xlsxwriter并发现它真的很有帮助。 我已将它用于多种用途,如自定义数据验证,自定义格式等 然而,我无法执行两件事。

  1. 将单元格的格式设置为' text'而不是' general'。我已经尝试过apis write_string,write_blank,但它们总是应用格式通用

  2. 将格式设置为会计。我试过add_format({' num_format':'#,###'}。但这只是将格式设置为' custom'而不是记帐

  3. 请帮忙。

1 个答案:

答案 0 :(得分:10)

  1. 要将单元格格式设置为text,您需要将text格式应用于单元格(就像在Excel中一样)。为此,您需要将格式的num_format属性设置为' @'。
  2. 如果您设置类似#,###的字符串格式,那么这通常会在Excel中显示为custom格式,即使它等同于其中一个内置格式类别,例如accountancy 。这与Excel的行为相同。
  3. 为了获得其中一种内置格式,您需要使用格式index而不是字符串。 num_format section of the docs中的表显示了可用的索引及其等效的字符串格式。对于accountancy,您需要使用其中一种类似会计的格式索引,例如44(_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_))。下面的例子显示了这两个:

    import xlsxwriter
    
    workbook = xlsxwriter.Workbook('test.xlsx')
    worksheet = workbook.add_worksheet()
    
    worksheet.set_column('A:A', 20)
    
    format1 = workbook.add_format({'num_format': '@'})
    format2 = workbook.add_format({'num_format': 44})
    
    worksheet.write(0, 0, 1234)
    worksheet.write(1, 0, 1234, format1)
    worksheet.write(2, 0, 1234, format2)
    
    workbook.close()
    

    输出:

    enter image description here