python3openpyxl,python3和openpyxl,在写入fi时格式化日期列表

请原谅我的新手问题。在

我有一个.xlsx电子表格,其中包含字符串、整数和日期。我正在使用Openpyxl按行读取它,然后将其写回许多文本文件。我现在遇到的唯一问题是日期时间格式,我只想要日期,而不是时间。在

这是我的代码:import openpyxl

wb = openpyxl.load_workbook('sample.xlsx')

sheet = wb.get_sheet_by_name('Sheet1')

numRows = sheet.max_row

destFile = "output.txt"

with open(destFile, "w") as text_file:

for i in range(1,numRows):

for cellObj in sheet.rows[i]:

print(cellObj.value, ',', sep = '', end = '', file=text_file)

print(file=text_file)

数据如下:

^{pr2}$

我得到的是:2016-04-15 00:00:00,Smith,14100,

2016-06-19 00:00:00,Bertram,22800,

2016-08-21 00:00:00,Jones,25600,

我希望它看起来像原版一样(多余的逗号并不会影响我)。我发现了许多解决方案,似乎是为了格式化插入到另一个电子表格中的日期,但我似乎不知道如何在输出到文本文件时实现这一点。我还发现了类似的解决方案,可以打印当前日期或计算日期,但不能直接重新格式化已存储的内容。在

提前非常感谢!在

更新:

查理·克拉克的回答完全正确。在

下面是一个有效的版本:我用日期硬编码了列,但它很容易成为一个变量。在import openpyxl

import datetime

wb = openpyxl.load_workbook('sample.xlsx')

sheet = wb.get_sheet_by_name('Sheet1')

numRows = sheet.max_row +1

numCols = sheet.max_column +1

destFile = "output.txt"

with open(destFile, "w") as text_file:

for i in range(0,numRows-1):

for cellObj in sheet.rows[i]:

if cellObj in sheet.columns[0]:

print(cellObj.value.strftime('%m/%d/%Y'), end = ',', file=text_file)

else:

print(cellObj.value, ',', sep = '', end = '', file=text_file)

print(file=text_file)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值