[英]How to avoid overwriting of cell style format in xlsxwriter (Python)?
我正在使用Python 2.7
,xlsxwriter 0.8.4
。
我有一個值列表,即int
和float
,我希望能夠在將數據寫入工作表單元格時應用不同的數字格式。
但是,使用set_num_format
方法時,最后應用的格式將應用於已經寫入的單元格。 我想知道是否可以對每個寫操作單獨應用單元格格式? 如果沒有,那么如何在不對它們進行硬編碼的情況下如何管理多種格式的對象 :
simple_style_percent_int = workbook.add_format({'bold': False, 'font_color': 'black','font_size': 11, 'font_name': 'Calibri','text_wrap': True, 'num_format': '0"%"'})
simple_style_percent_decimal = workbook.add_format({'bold': False, 'font_color': 'black','font_size': 11, 'font_name': 'Calibri','text_wrap': True, 'num_format': '0.0"%"'})
我運行的代碼:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
percent_format = workbook.add_format()
for item in [22.0, 34.68]:
if item.is_integer():
percent_format.set_num_format('0"%"')
worksheet.write(1,1, int(item), percent_format)
else:
percent_format.set_num_format('0.00"%"')
worksheet.write(2,1, item, percent_format)
workbook.close()
該腳本會將最后使用的格式(即小數百分比)應用於在先前的寫操作期間具有該格式的所有單元格(但是,我希望22
表示為22%
,而不是22.00%
。
沒有什么可以阻止您定義以下多種格式的:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
percent_format_1 = workbook.add_format()
percent_format_1.set_num_format('0"%"')
percent_format_2 = workbook.add_format()
percent_format_2.set_num_format('0.00"%"')
for item in [22.0, 34.68]:
if item.is_integer():
worksheet.write(1,1, int(item), percent_format_1)
else:
worksheet.write(2,1, item, percent_format_2)
workbook.close()
這將為您提供:
注意,更改格式將使更改應用於已經使用該格式寫入的單元。 即,最終格式用於顯示所有關聯的單元格,這就是您看到它更改的原因。 有關更多信息,請參見修改格式 。
要使用這兩種不同的格式將其應用於整個數據列,您可以按以下方式枚舉數據:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
percent_format_1 = workbook.add_format()
percent_format_1.set_num_format('0"%"')
percent_format_2 = workbook.add_format()
percent_format_2.set_num_format('0.00"%"')
for rowy, item in enumerate([22.0, 34.68, 1.0, 5.0, 6.8], start=1):
if item.is_integer():
worksheet.write(rowy, 1, int(item), percent_format_1)
else:
worksheet.write(rowy, 1, item, percent_format_2)
workbook.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.