Python 3和openpyxl,写入文件时格式化日期列表

Python 3 and openpyxl, formatting a list of dates when writing to a file

请原谅我的新手问题

我有一个 .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)

这是数据:

04/15/16,Smith,14100
06/19/16,Bertram,22800
08/21/16,Jones,25600

这是我得到的:

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)

datetime.strftime()是你的朋友。

Excel 日期和日期时间之间的区别不是很清楚,因此 openpyxl 总是将它们转换为日期时间。