最近看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攻击么,等恢复了再上传吧

最新文章

  1. 【Win 10 应用开发】通过数据绑定更新进度条
  2. XHPROF相关内容
  3. svn 设置
  4. Github/Eclipse管理Maven项目
  5. TextArea限制输入长度
  6. 腾讯TGideas语义化标签(转)
  7. git简单使用教程
  8. Shiro 系列 - 基本知识
  9. egg.js异步请求数据
  10. tensorflow模型ckpt转pb以及其遇到的问题
  11. (1)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 什么是微服务架构,.netCore微服务选型
  12. Python之拆分目录
  13. Python的命令模式和交互模式
  14. LOJ 10160 - 「一本通 5.2 练习 3」周年纪念晚会 / 没有上司的晚会
  15. 深入理解Python生成器(Generator)
  16. Bridge 桥接模式 MD
  17. TCP协议的问题
  18. Python笔试、面试 【必看】
  19. SQL server账号无法登陆
  20. 757. Set Intersection Size At Least Two

热门文章

  1. 鼠标划过用户名时在鼠标右下角显示div展示用户资料
  2. java中readLine()方法为什么有的行读不到?
  3. js,jq,css选择器
  4. 现有iOS项目集成React Native过程记录
  5. (2)WebAPI的增删改查
  6. 【leetcode】Compare Version Numbers
  7. WCF 学习篇
  8. SMARTY模板中如何使用get,post,request,cookies,session,server变量
  9. Spring MVC注解入门
  10. Stack Overflow: The Architecture - 2016 Edition(Translation)