在Python中使用XLSXWRITER:如何在单元格中插入27位数字并将其显示为文本而不是科学数字

问题描述 投票:0回答:1
我正在使用 Python 中的 XLSXWRITER 包编写 Excel。格式应用于单元格,这一切都有效,但当分配的值是 27 位文本字符串(从某个源中提取)时,一个单元格除外。

我已阅读

如何使用 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
 还可能包含字母数字字符串。

有什么提示吗?

python xlsxwriter
1个回答
0
投票
我用你的代码运行了测试,结果如图所示

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()
结果

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.