在django里用xlwt作EXCEL导出功能
参考了以前kevin的代码,搞起来快呀,哈哈哈,,阿里亚多。。。。
代码的意思比较明白,不注释,几乎自解释。。。
就是定义EXCEL时,比较硬生生的,一步一步没有快捷的方法。
另外就是取时间出来时,如果时区不对,就要自已来转换下。另外,数字型之类的要转换为字符型,不然,又会出错。。。
def ExportContentByJiraVersion(request, site_name=None, jira_version=None): response = HttpResponse(content_type='application/vnd.ms-excel') response[ 'Content-Disposition'] = 'attachment;filename={0}-{1}.xls'.format(site_name, jira_version) wb = xlwt.Workbook(encoding='utf-8') sheet_prd = wb.add_sheet('PRD') sheet_uat = wb.add_sheet('UAT') sheet_fat = wb.add_sheet('FAT') style_heading = xlwt.easyxf(""" font: name Arial, colour_index white, bold on, height 0xA0; align: wrap off, vert center, horiz center; pattern: pattern solid, fore-colour 0x19; borders: left THIN, right THIN, top THIN, bottom THIN; """ ) style_body = xlwt.easyxf(""" font: name Arial, bold off, height 0XA0; align: wrap on, vert center, horiz left; borders: left THIN, right THIN, top THIN, bottom THIN; """ ) style_green = xlwt.easyxf(" pattern: pattern solid,fore-colour 0x11;") style_red = xlwt.easyxf(" pattern: pattern solid,fore-colour 0x0A;") fmts = [ 'M/D/YY', 'D-MMM-YY', 'D-MMM', 'MMM-YY', 'h:mm AM/PM', 'h:mm:ss AM/PM', 'h:mm', 'h:mm:ss', 'M/D/YY h:mm', 'mm:ss', '[h]:mm:ss', 'mm:ss.0', ] style_body.num_format_str = fmts[0] # 1st line sheet_prd.write(0, 0, '发布单', style_heading) sheet_prd.write(0, 1, '组件', style_heading) sheet_prd.write(0, 2, '环境', style_heading) sheet_prd.write(0, 3, '进度', style_heading) sheet_prd.write(0, 4, 'JIRA问题号', style_heading) sheet_prd.write(0, 5, '操作用户', style_heading) sheet_prd.write(0, 6, '时间', style_heading) row = 1 contents = XXX.objects.filter(site_name__name=site_name).filter(jira_issue_version=jira_version)\ .filter(deploy_status='PRD') for content in contents: sheet_prd.write(row, 0, content.name, style_body) sheet_prd.write(row, 1, content.app_name.name, style_body) sheet_prd.write(row, 2, content.deploy_status, style_body) if content.deploy_progress == u'已发布': sheet_prd.write(row, 3, content.deploy_progress, style_green) else: sheet_prd.write(row, 3, content.deploy_progress, style_red) sheet_prd.write(row, 4, content.jira_issue_no, style_body) sheet_prd.write(row, 5, str(content.create_user), style_body) sheet_prd.write(row, 6, str(content.change_date + timedelta(hours=8)), style_body) # 第一行加宽 sheet_prd.col(0).width = 100 * 50 sheet_prd.col(1).width = 200 * 50 sheet_prd.col(2).width = 50 * 50 sheet_prd.col(3).width = 50 * 50 sheet_prd.col(4).width = 200 * 50 sheet_prd.col(5).width = 50 * 50 sheet_prd.col(6).width = 200 * 50 row += 1 # 1st line sheet_uat.write(0, 0, '发布单', style_heading) sheet_uat.write(0, 1, '组件', style_heading) sheet_uat.write(0, 2, '环境', style_heading) sheet_uat.write(0, 3, '进度', style_heading) sheet_uat.write(0, 4, 'JIRA问题号', style_heading) sheet_uat.write(0, 5, '操作用户', style_heading) sheet_uat.write(0, 6, '时间', style_heading) row = 1 contents = XXX.objects.filter(site_name__name=site_name).filter(jira_issue_version=jira_version)\ .filter(deploy_status='UAT') for content in contents: sheet_uat.write(row, 0, content.name, style_body) sheet_uat.write(row, 1, content.app_name.name, style_body) sheet_uat.write(row, 2, content.deploy_status, style_body) if content.deploy_progress == u'已发布': sheet_uat.write(row, 3, content.deploy_progress, style_green) else: sheet_uat.write(row, 3, content.deploy_progress, style_red) sheet_uat.write(row, 4, content.jira_issue_no, style_body) sheet_uat.write(row, 5, str(content.create_user), style_body) sheet_uat.write(row, 6, str(content.change_date + timedelta(hours=8)), style_body) # 第一行加宽 sheet_uat.col(0).width = 100 * 50 sheet_uat.col(1).width = 200 * 50 sheet_uat.col(2).width = 50 * 50 sheet_uat.col(3).width = 50 * 50 sheet_uat.col(4).width = 200 * 50 sheet_uat.col(5).width = 50 * 50 sheet_uat.col(6).width = 200 * 50 row += 1 output = StringIO.StringIO() wb.save(output) output.seek(0) response.write(output.getvalue()) return response
在django里用xlwt作EXCEL导出功能的更多相关文章
- 使用NPOI实现简单的Excel导出功能
[1]NPOI是啥? NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作. POI是一个开源的Java读写Excel. ...
- Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc
Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...
- 用SpringMvc实现Excel导出功能
以前只知道用poi导出Excel,最近用了SpringMvc的Excel导出功能,结合jxl和poi实现,的确比只用Poi好,两种实现方式如下: 一.结合jxl实现: 1.引入jxl的所需jar包: ...
- 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能
我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...
- excel导出功能优化
先说说优化前,怎么做EXCEL导出功能的: 1. 先定义一个VO类,类中的字段按照EXCEL的顺序定义,并且该类只能用于EXCEL导出使用,不能随便修改. 2. 将查询到的结果集循环写入到这个VO类中 ...
- excel导出功能原型
本篇博客是记录自己实现的excel导出功能原型,下面我将简单介绍本原型: 这是我自制的窗体,有一个ListView和一个Button(导出)控件. 这是我在网上找到了使用exel需要引用的库. usi ...
- java利用EasyPoi实现Excel导出功能
easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言( ...
- asp.net excel导出功能
以下是我在项目开发中所做的关于Excel导出功能,不足之处还望大家指正,相互学习 protected void btn_Export_Click(object sender, EventArgs e) ...
- Delphi实现带有格式的Excel导出功能
功能预览 运行预览 模板样式 存储返参 导出的Excel 2. 代码实现 //执行sql的函数 procedure TForm1.GetReportData(astrsql:string); var ...
随机推荐
- PCB SQL SERVER 位运算应用实例
在PCB行业,一个产品可能同时在多个工厂生产,举例:一个产品一条主记录,这条记录中会对应多个工厂的产地,而这个工厂产地个数不确定, 那么如何设计表结构存储这个不确定的工厂呢?这里想到了4个方式存储 一 ...
- P1272 重建道路(树形dp)
P1272 重建道路 题目描述 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是惟 ...
- [Swift通天遁地]五、高级扩展-(5)获取互补色、渐变色、以及图片主题颜色
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Python 线程 的 锁
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9gAAAG7CAYAAAA41T2sAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw ...
- Redis 的简单运算
Redis 的简单运算 命令 说明 备注 incr key 在原字段上加 1 只能对整数操作 incrby key increment 在原字段上加上整数 (increment) 只能对整数操作 de ...
- 小小的IP,大大的耦合,你痛过吗?
什么是耦合? 耦合,是架构中,本来不相干的代码.模块.服务.系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态. 感官上,怎么发现系统中的耦合? 作为技术人,每每在 ...
- 实现div毛玻璃背景
毛玻璃效果 ios里毛玻璃效果的使用非常多,本文介绍一个实现div毛玻璃背景的方法 CSS3 Filter CSS3的Filter主要用在图像的特效处理上,默认值为none,还有以下备选项: 1. ...
- xampp中localhost与DreamWaver站点设置问题
作为一个初学者,在DreamWaver中配置web服务器用于本地测试,中间碰到了好多问题,百度答案模糊不清,自己摸索出来,把自己碰到的,易错的地方做个总结. step1 : 安装xampp(安装位置记 ...
- 4.用Redis Desktop Manager连接Redis(Windows)
相比连接CentOS的Redis,在Windows中的操作简单得让人感动. 所以这里我们使用的服务器系统是Windows Server 2016 R2. 而Windows版本的Redis官方网站并没有 ...
- (转)Quartz任务调度(1)概念例析快速入门
http://blog.csdn.net/qwe6112071/article/details/50991563 Quartz框架需求引入 在现实开发中,我们常常会遇到需要系统在特定时刻完成特定任务的 ...