Python:如何使用xlsxwriter更改单元格num类型

Python:如何使用xlsxwriter更改单元格num类型,python,python-2.7,xlsxwriter,Python,Python 2.7,Xlsxwriter,我正在使用python将.csv文件转换为xlsx文件,文件转换成功。同时,我还想更改cell num类型,就像有浮点类型xx.xxxx一样,它将减少到.xx(2位小数)值 输入test.csv表,用“,”分隔 我已经使用xlsxwriter尝试了下面的python脚本,但出现了一个错误 import os import glob import csv from xlsxwriter.workbook import Workbook for csvfile in glob.glob(os.pa

我正在使用python将.csv文件转换为xlsx文件,文件转换成功。同时,我还想更改cell num类型,就像有浮点类型xx.xxxx一样,它将减少到.xx(2位小数)值

输入test.csv表,用“,”分隔

我已经使用
xlsxwriter
尝试了下面的python脚本,但出现了一个错误

import os
import glob
import csv
from xlsxwriter.workbook import Workbook

for csvfile in glob.glob(os.path.join('.', 'hourly.csv')):
workbook = Workbook(csvfile + '.xlsx')
worksheet = workbook.add_worksheet()
format = workbook.add_format()
format.set_bold()
format.set_font_color('blue')
format.set_num_format('0x02')
format1 = workbook.add_format({'font_color': 'blue'})
with open(csvfile, 'rb') as f:
    reader = csv.reader(f)
    for r, row in enumerate(reader):
        for c, col in enumerate(row):
            worksheet.write(r, c, col)
            worksheet.set_row(0, 20, format)
            worksheet.set_column('A:P', format)
workbook.close()
获取错误信息

“TypeError:不支持*:'Format'和'int'的操作数类型”


我的第二个问题是生成的输出(如果我删除
工作表,则获取输出。set_列('A:p',format)
)将单元格类型指定为文本,而我的数据是除标题以外的所有数值。

上次我检查XlsxWriter的
工作表时,
不支持在写入值后更改单元格类型。当您要写入特定类型的值时,必须使用特定于类型的方法来写入,如下所示:

worksheet.write_datetime(idx, fld_idx, fld, date_format)
你还必须在写作时指定格式,我认为不可能在事后更改格式

一般来说,我从XlsxWriter的经验中了解到,最好在编写之前准备好所需的一切,然后用所有正确的值编写一次单元格。例如,在将
datetime
写入单元格时,我使用了预定义的
date\u格式。这很有效

请在此处阅读特定于类型的方法,特别是:

write_string()
write_number()
write_blank()
write_formula()
write_datetime()
write_boolean()
write_url()

第一个问题可能是由于添加十六进制值作为字符串引起的。请尝试0x2,或者仅尝试2。第二个问题是,csv模块将以字符串形式读取所有数据,即使这些数据看起来像数字。您可以通过使用XlsxWriter.中的
strings\u to\u numbers
constructor选项来解决此问题。在将strings\u添加到\u numbers之后,这两个问题现在都得到了解决。我可以知道如何仅对特定列应用浮点(.xx格式)吗???根据我的表格,第4列有浮点值。工作表.set_列('A:P',18,format1)将format1参数应用于所有列。我已经定义了一个format2,它有0x2 num类型,如何将它添加到sheet.set行?
write_string()
write_number()
write_blank()
write_formula()
write_datetime()
write_boolean()
write_url()