在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 ...
随机推荐
- js获取request参数值(javascript 获取request参数值的方法)
jsp 中的js,可以用el表达式来提取:var value = "${requestScope.XXX}"; 注:XXX为你的参数名 如:http://localhost:808 ...
- codevs1026商务旅行
1036 商务旅行 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 某首都城市的商人要经常到各城镇去做 ...
- [Swift通天遁地]三、手势与图表-(1)监听屏幕上触摸事件的各种状态
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 一种高兼容性的JavaBean序列化方案
在对JavaBean做序列化时,我们可能在某些场景希望前后兼容性好一些.比如所有的javaBean都序列化后保存在数据库,用的时候需要反序列化创建.随着业务的发展,数据模型可能会进行变更,那么原来的数 ...
- asp.net core 2.0 Json结果的格式
asp.net core 2.0 默认返回的结果格式是Json, 并使用json.net对结果默认做了camel case的转化(大概可理解为首字母小写). 这一点与老.net web api 不一样 ...
- phonegap在eclipse上的安装
1.首先安装好eclipse 2.下载安装好sdk 3.下载安装好adt 4.在这个地方下载好phonegap的包,https://codeload.github.com/phonegap/phone ...
- 51nod 1222 莫比乌斯反演
思路: yhx找的反演题 题解已经烂大街了 #pragma GCC optimize("O3") //By SiriusRen #include <bits/stdc++.h ...
- html5——:hover事件触发自己的:afert伪元素事件
:hover事件触发自己的:afert伪元素事件中间是没有空格的
- HashTable, HashSet, HashMap的区别
HashTable, HashSet, HashMap的区别 hash是一种很常见也很重要的数据结构,是用hash函数根据键值(key)计算出存储地址,以便直接访问.由完美hash函数(即键值 ...
- SQL Server建库-建表-建约束
----------------------------------------SQL Server建库-建表-建约束创建School数据库------------------------------ ...