Python实战 :2017国考职业表excel转数据库,再查询生成excel
最近看2017年国考的职业表,多而杂,不好过滤我想要的信息,特此把它转成Sqlite3数据库,再从数据库里把查询结果导出成excel,方便找职业。
(后附上整套代码)
环境:python2.7
xlrd :读excel的库
xlwt:写excel的库 两个库都可以在:https://pypi.python.org 上搜索到。
gk.xls:国考官网上下载的职业表数据
一、excel转sqlite:
直接连接sql语句了,不用orm
# -*- coding: utf-8 -*-
import sqlite3
import xlrd
data = xlrd.open_workbook('gk.xls')
con = sqlite3.connect('data.db')
cursor = con.cursor()
for x in range(0,4): table = data.sheets()[x]
rows = table.nrows
print 'rows:%s cols:%s'%(rows,table.ncols)
print table.ncols for i in range(1, rows):
rowData = table.row_values(i)
departNo = rowData[0]
departName = rowData[1]
useDepart = rowData[2]
jgxz = rowData[3]
jgcj = rowData[4]
zwsx = rowData[5]
zwmc = rowData[6]
zwjj = rowData[7]
zwdm = rowData[8]
kslb = rowData[9]
bkrs = rowData[10]
zy = rowData[11]
xl = rowData[12]
xw = rowData[13]
zzmm = rowData[14]
jcgznx = rowData[15]
szyf = rowData[16]
xbzyz = rowData[17]
dxscg = rowData[18]
tgjhjs = rowData[19]
wxz = rowData[20]
sfzms = rowData[21]
msrybl = rowData[22]
bz = rowData[23]
zwfb = rowData[24]
bmwz = rowData[25]
zxdh1 = rowData[26]
zxdh2 = rowData[27]
zxdh3 = rowData[28]
cursor.execute('insert into gk values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', (departNo,departName,useDepart,jgxz,jgcj,zwsx,zwmc,zwjj,zwdm,kslb,bkrs,zy,xl,xw,zzmm,jcgznx,szyf,xbzyz,dxscg,tgjhjs,wxz,sfzms,msrybl,bz,zwfb,bmwz,zxdh1,zxdh2,zxdh3))
con.commit()
con.close()
执行完会在当前目录生成data.db,如图:
表格里4个sheet里的所有数据都被存入data.db里的gk数据表.
二、查询数据,生成excel:
# -*- coding: utf-8 -*- import sqlite3
import xlwt # connect to sqlite
con = sqlite3.connect('data.db')
cursor = con.cursor()
cursor.execute("select * from gk where useDepart like '%永州%'") # create excel
wbk = xlwt.Workbook(encoding='utf-8', style_compression=0)
sheet = wbk.add_sheet('sheet', cell_overwrite_ok=True) column_head = (u'部门代码',u'部门名称',u'用人司局',u'机构性质',u'机构层级',u'职位属性',u'职位名称',u'职位简介',u'职位代码',u'考试类别',u'招考人数',u'专业',u'学历',u'学位',u'政治面貌',u'基层工作最低年限',u'三支一扶大学生',u'西部志愿者',u'大学生村官',u'特岗计划教师',u'无限制',u'是否在面试阶段组织专业能力测试',u'面试人员比例',u'备注',u'职位分布',u'部门网站',u'咨询电话1',u'咨询电话2',u'咨询电话3') for i in range(len(column_head)):
sheet.write(0,i,column_head[i]) i = 1
while 1:
one = cursor.fetchone()
if not one:
break
for j in range(len(one)):
sheet.write(i,j,one[j])
i += 1 # save excel
wbk.save('out.xls') # close sqlite connection
con.commit()
con.close()
执行完会在当前目录生成out.xls,查看里面的内容:
搞定了,以后有时间弄成web版的吧.
本来想把所有的包括职位表传到gitlab上的,现在是北京时间:13:58:54 不过gitlab竟然挂了!? Deploy in progress,难道是因为最近的米国被Ddos攻击么,等恢复了再上传吧
Python实战 :2017国考职业表excel转数据库,再查询生成excel的更多相关文章
- python实战===2017年30个惊艳的Python开源项目 (转)
本文转自:http://www.sohu.com/a/216723120_115128 摘要:本文来自Mybridge,介绍了过去一年里30个惊艳的Python开源项目.点击每一个都可以在GitHub ...
- ORACLE+PYTHON实战:复制A表数据到B表
最近在学习python ,看到了pythod的oracle,不仅可以一次fetch多条,也可以一次insert多条,想写一个复制A表数据到B表的程序来看看实际效率能不能提高.写完发现,非常惊艳!效率提 ...
- python用jdbc读取oracle表和列的信息,生成java代码
这个项目的地址 传送门 第一个python3项目,对python 还是学习中,请大佬轻喷,欢迎指点 import jaydebeapi from .database import Database d ...
- 从数据库导出数为生成excel表
mysql -umaster -hxx.xx.xx.xx -p -e "set names utf8; use xxxdb;select * from t_order where t_ord ...
- Java使用poi从数据库读取数据生成Excel表格
想要使用POI操作以xsl结尾的Excel,首先要下载poi相关的jar包,用到的jar有: poi-3.9.jar poi-ooxml-3.9.jar poi-ooxml-schemas-3.9.j ...
- [ python ] 查询数据库生成Excel并发送邮件
开发要求: 由于管理后台导出数据非常缓慢,找程序员解决无果后,自己动手写了一个脚本,每天定时将报表发送给业务部门. 1. 通过条件查询MySQL获取数据 2. 将获取的数据写入到Excel ...
- ASP.NET 将Excel导入数据库
将Excel导入数据库大致流程: Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...
- 通过Workbook类 生成Excel导出数据
需求: 实现错误信息生成Excel保存到本地让用户查看. 刚开始使用了微软自带的Microsoft.Office.Interop.Excel类库. Microsoft.Office.Interop.E ...
- Echarts 数据视图 生成Excel的方法
一.生成Excel,两大方向:1后台生成Excel 查询数据库,使用NOPI生成Excel.2前台js生成Excel三种方式1)jquery.table2excel.js --采用,优势:兼容IE和C ...
随机推荐
- js之iframe子页面与父页面通信
iframe子页面与父页面通信根据iframe中src属性是同域链接还是跨域链接,通信方式也不同. 一.同域下父子页面的通信 父页面parent.html <html> <head& ...
- SQL Server 从数据库中查询去年的今天的数据的sql语句
因为最近的项目的一个小功能需要实现当前数据和历史的今天做一个对比.在网上也查了很久,很多都是实现一个月内的,一年内的所有数据,昨晚突然就找到了下面的实现方法,在SQL Server2008中试了一下, ...
- RakNet基本教程
官方网址:http://www.jenkinssoftware.com/raknet/manual/tutorialsample3.html Tutorial code sample 3 Remote ...
- Vim配置文件
转载 原文网址:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim ...
- 模拟搭建Web项目的真实运行环境(五)
一.开启IIS功能 刚安装完的server2008是没有默认开启IIS功能,在这里简单介绍一下如何开启IIS. 步骤: 1. 打开控制面板,选中[程序] 2. 在[程序和功能]下面,选择[打开或关闭w ...
- Servlet引擎Jetty之入门1
Jetty与tomcat一样,HttpWeb容器,支持实现Servlet规范. 详细介绍参考:https://www.ibm.com/developerworks/cn/java/j-lo-jetty ...
- 关于sql的执行顺序
标准sql的解析顺序为 1)FROM子句,组装来自不同数据源的数据 2)WHERE子句 基于制定的条件对记录进行筛选 3)GROUP BY 子句将数据划分为多个分组 4)使用聚合函数进行计算 5) 使 ...
- C#连接SQLServer数据库基本实现
(在这写下来,防止以后忘记) 在VS2012中新建一个Windows窗口应用程序,并在Form中放置DataGridView和Button两个控件,在Button的单击响应事件中连接数据库: priv ...
- android include进来的组件 调用其子元素
include标签包裹着一个可复用的布局: <include layout="@layout/footer_detail" android:id="@+id/foo ...
- 【Java EE 学习 57】【酒店会员管理系统之分页模板书写】
分页一直是一个比较麻烦的问题,特别是在我做的这个系统中更是有大量的分页,为了应对该问题,特地写了一个模板以方便代码重用,该模板包括后台分页的模板.前端显示的模板两部分. 一.分页分析 分页需要三种类型 ...