python – django xlsxwriter中的DateTime问题
发布时间:2020-12-20 13:13:55 所属栏目:Python 来源:网络整理
导读:我试图在我的 django视图中创建导出到excel功能,如下所示: def export_myreport(request,sd,ed): from xlsxwriter.workbook import Workbook import cStringIO as StringIO from django.utils.encoding import smart_str # create a workbook in memory out
我试图在我的
django视图中创建导出到excel功能,如下所示:
def export_myreport(request,sd,ed): from xlsxwriter.workbook import Workbook import cStringIO as StringIO from django.utils.encoding import smart_str # create a workbook in memory output = StringIO.StringIO() wb = Workbook(output) bg = wb.add_format({'bg_color': '#9CB640','font_color': 'black'}) bg2 = wb.add_format({'bg_color': '#FFFFFF','font_color': 'black'}) ws = wb.add_worksheet('My Report') row_num = 0 summary = MyModel.objects.filter(time__range = (sd,ed)).select_related() row_num += 2 row = [ smart_str(u"Time"),smart_str(u"Item"),smart_str(u"User") ] for col_num in xrange(len(row)): ws.write(row_num,col_num,row[col_num],bg) for s in summary: row_num += 1 row2 = [ s.time,s.model_name,s.user.first_name ] for col_num in xrange(len(row2)): ws.write(row_num,row2[col_num],bg2) wb.close() output.seek(0) response = HttpResponse(output.read(),content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") response['Content-Disposition'] = "attachment; filename=myreport.xlsx" return response 但我在使用DateTime格式时遇到了一些问题!也许我在这里缺少什么? 这是我得到的错误: TypeError at /myapp/export_myreport/2015-05-01/2015-05-19 can't subtract offset-naive and offset-aware datetimes 编辑: 这就是我在我的html中调用url的方式: <a href="export_myreport/{{begindate}}/{{enddate}}" class="btn btn-default pull-right" role="button">Export to XLSX</a> 这里{{begindate}}和{{enddate}}是角度变量. 解决方法
Excel和XlsxWriter不支持日期/时间的时区.
因此,在将日期时间传递给XlsxWriter之前,您需要从日期时间中删除或调整时区. 来自pytz文档的类似内容: dt = datetime(2005,3,1,14,13,21,tzinfo=utc) naive = dt.replace(tzinfo=None) 可能在Django中处理得更好,而不是在将所有日期时间数据传递给XlsxWriter之前调整它们.也许其他人可以添加一个建议. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |