python xlsxwriter 定义名称,python - 如何强制Python XlsxWriter以自定义格式写入单元格 - SO中文参考 - w ...

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 23:38   11   0

我正在编写脚本以生成要上传到我们系统中的xlsx文件。列之一包含当前日期,需要以非常特定的方式设置格式(自定义:m / d / yyyy h:mm')。我在脚本中有一条命令可以成功正确格式化单元格,这是我知道的,因为如果我检查生成的xlsx中的单元格格式,它将显示正确的格式。但是,xlsxwriter实际上并未写入该格式,因为它被上载拒绝。如果我打开电子表格并“触摸”该值(在单元格中按Enter),那么它将正确格式化为我期望的值。

是否有任何方法可以强制xlsxwriter以期望的格式写入值,这样我就不必进入此工作表并触摸值了吗?无论如何,有没有办法使我执行的这种“触摸”自动化?考虑到xlsxwriter不操纵电子表格,而只是生成电子表格,我对此表示怀疑。

提供的图像显示两个日期值。第一个是我期望的“接触”值,第二个是脚本编写的值。请注意,这些值实际上是相同的,其中一个值刚刚由excel格式化。

“感动”价值与书面价值的示例:

%E2%80%9C

我已经尝试以单独的方式格式化datetime字符串以尝试解决此问题,但是没有任何结果。我找不到与类似问题有关的任何其他文献。import xlsxwriter

import datetime

x = datetime.datetime.now()

Date = str(x.strftime("%m")) + "/" + str(x.strftime("%d")) + "/" + str(x.strftime("%Y")) + " " + str(x.strftime("%I")) + ":" + str(x.strftime("%M")) + ":00" + " " + str(x.strftime("%p"))

workbook = xlsxwriter.Workbook("C:/" + File_Name)

worksheet = workbook.add_worksheet('Fills')

Dealer_out = ['External', Dealer_Name, Dealer_Exchange, Symbol, 'Manual_JV', '', '', '', Date, Account_Number, Account_Number, Opposite_Side[Dealer_Side.upper()], Dealer_Amount, Dealer_Price, 'TRUE']

Header = ['Source', 'Context', 'Exchange', 'Internal Symbol', 'Origin', 'Order Id', 'Exchange Order Id', 'Fill Id', 'Fill Time', 'Intern Account Number', 'External Account Number', 'Side', 'Quantity', 'Price', 'IsActive']

row = 0

col = 0

#write header to spreadsheet

cell_bold = workbook.add_format({'bold': True})

cell_format1 = workbook.add_format({'num_format': 'm/d/yyyy h:mm'})

cell_format1.set_num_format('m/d/yyyy h:mm')

#write dealer information to spreadsheet

for cell in Dealer_out:

if col == 8:

worksheet.write(row, col, cell, cell_format1)

else:

worksheet.write(row, col, cell)

col += 1

db.close()

workbook.close()

从'Dealer_out'中写出的值是从csv中读取和解析的,脚本的这一部分尚未包括在内。提前谢谢您的帮助。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP