Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用python下载excel文件时将字符串转换为日期格式_Python_Excel_Datetime - Fatal编程技术网

如何在使用python下载excel文件时将字符串转换为日期格式

如何在使用python下载excel文件时将字符串转换为日期格式,python,excel,datetime,Python,Excel,Datetime,我的目标和困难在于将excel中的日期列数据从数字格式转换为日期格式 在我的python代码片段中,保存日期的变量是字符串类型 current_date=datetime.today().strftime('%-d/%-m/%Y') 到目前为止还不错,但当我下载excel文件并访问包含日期数据的单元格时,格式单元格会将格式识别为数字(我不确定这句话是否值得一提) 无论如何,我希望日期数据的格式是date,而不是Number 我怎么做 这是我的密码: # content-type of resp

我的目标和困难在于将excel中的日期列数据从数字格式转换为日期格式

在我的python代码片段中,保存日期的变量是字符串类型

current_date=datetime.today().strftime('%-d/%-m/%Y')
到目前为止还不错,但当我下载excel文件并访问包含日期数据的单元格时,格式单元格会将格式识别为数字(我不确定这句话是否值得一提)

无论如何,我希望日期数据的格式是date,而不是Number 我怎么做

这是我的密码:

# content-type of response
response = HttpResponse(content_type='application/ms-excel')
#decide file name
response['Content-Disposition'] = 'attachment; filename="export.xls"'
#creating workbook
wb = xlwt.Workbook(encoding='utf-8')
#adding sheet
ws = wb.add_sheet("export")
# Sheet header, first row
row_num = 0
#style
font_style = xlwt.XFStyle()
font_style.font.bold = True
#date(string)
current_date=datetime.today().strftime('%-d/%-m/%Y')
...
ws.write(row_num,1,current_date)

我读到xlrd库可以在这方面提供帮助,但我没有正确使用它。

答案基于xlsxwriter库的使用情况

通过下面的代码片段,我最终尝试下载xlsx文件,并在excel中以日期格式值而不是默认的数字格式值显示我的日期值

片段:

from xlsxwriter.workbook import Workbook
from io import BytesIO

# create a workbook in memory
output = BytesIO()
wb = Workbook(output)
ws = wb.add_worksheet('export') 
...
current_date = datetime.now()
format2 = wb.add_format({'num_format': 'dd/mm/yy'})
...
ws.write(row_num,1,current_date,format2)
wb.close()
# construct response
output.seek(0)
response = HttpResponse(output.read(), content_type='application/ms-excel')
response['Content-Disposition'] = "attachment; filename=export.xlsx"
return response

答案基于xlsxwriter库的使用情况

通过下面的代码片段,我最终尝试下载xlsx文件,并在excel中以日期格式值而不是默认的数字格式值显示我的日期值

片段:

from xlsxwriter.workbook import Workbook
from io import BytesIO

# create a workbook in memory
output = BytesIO()
wb = Workbook(output)
ws = wb.add_worksheet('export') 
...
current_date = datetime.now()
format2 = wb.add_format({'num_format': 'dd/mm/yy'})
...
ws.write(row_num,1,current_date,format2)
wb.close()
# construct response
output.seek(0)
response = HttpResponse(output.read(), content_type='application/ms-excel')
response['Content-Disposition'] = "attachment; filename=export.xlsx"
return response

请澄清:是否希望类似日期的excel单元格值转换为
datetime
对象?@MrFuppes我的单元格值为7/5/2020,类型为Number,我希望为7/5/2020,但类型为date。您的意思是希望excel中的输出格式为date?也许这是一个选项:@MrFuppes谢谢,这帮助很大,但我仍然无法下载excel文件以查看实际结果。当我尝试将响应保存为excel文件并返回时,出现了“工作簿”对象没有属性“保存”的错误。无论如何,我会弄明白的,但是你的答案到底在哪里呢!请澄清:是否希望类似日期的excel单元格值转换为
datetime
对象?@MrFuppes我的单元格值为7/5/2020,类型为Number,我希望为7/5/2020,但类型为date。您的意思是希望excel中的输出格式为date?也许这是一个选项:@MrFuppes谢谢,这帮助很大,但我仍然无法下载excel文件以查看实际结果。当我尝试将响应保存为excel文件并返回时,出现了“工作簿”对象没有属性“保存”的错误。无论如何,我会弄明白的,但是你的答案到底在哪里呢!