我已阅读
如何使用 xlsxwriter 将格式应用为“文本”和“会计”。它建议将数字格式设置为“@”,但是当我尝试时:
WSFMT_TX_REFINFO = wb.add_format({'num_format': '@'
, 'align': 'right'
, 'border_color': WS_TX_BORDERCOLOR
, 'right': WS_TX_BORDERSYTLE
})
并在单元格中写入:
refdata = '001022002024080400002400105'
ws.write(wsRow, WS_COL_REF_INFO, refdata, WSFMT_TX_REFINFO)
单元格显示为
1.041E+24
在编辑器字段中为
1.041002024073E+24
如果我将格式规范从'@'
更改为
0
,即更改
WSFMT_TX_REFINFO = wb.add_format({'num_format': '@'
到
WSFMT_TX_REFINFO = wb.add_format({'num_format': 0
单元格显示为
1022002024080400000000000
请注意,第 14 位之后的数字被零替换。在编辑器字段中显示为
1.0220020240804E+24
我需要什么:号码应显示为 27 位数字字符串,与 refdata
中的内容完全相同 注意:在某些情况下,除了纯 27 位数字符串之外,
refdata
还可能包含字母数字字符串。有什么提示吗?
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
WS_TX_BORDERCOLOR = 'blue'
WS_TX_BORDERSYTLE = 1
WSFMT_TX_REFINFO = workbook.add_format({'num_format': '@',
'align': 'right',
'border_color': WS_TX_BORDERCOLOR,
'right': WS_TX_BORDERSYTLE
})
wsRow = 5
wsCol = 2
refdata = '001022002024080400002400105'
worksheet.write(wsRow, wsCol, refdata, WSFMT_TX_REFINFO)
workbook.close()
结果