最近看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的更多相关文章

  1. python实战===2017年30个惊艳的Python开源项目 (转)

    本文转自:http://www.sohu.com/a/216723120_115128 摘要:本文来自Mybridge,介绍了过去一年里30个惊艳的Python开源项目.点击每一个都可以在GitHub ...

  2. ORACLE+PYTHON实战:复制A表数据到B表

    最近在学习python ,看到了pythod的oracle,不仅可以一次fetch多条,也可以一次insert多条,想写一个复制A表数据到B表的程序来看看实际效率能不能提高.写完发现,非常惊艳!效率提 ...

  3. python用jdbc读取oracle表和列的信息,生成java代码

    这个项目的地址 传送门 第一个python3项目,对python 还是学习中,请大佬轻喷,欢迎指点 import jaydebeapi from .database import Database d ...

  4. 从数据库导出数为生成excel表

    mysql -umaster -hxx.xx.xx.xx -p -e "set names utf8; use xxxdb;select * from t_order where t_ord ...

  5. Java使用poi从数据库读取数据生成Excel表格

    想要使用POI操作以xsl结尾的Excel,首先要下载poi相关的jar包,用到的jar有: poi-3.9.jar poi-ooxml-3.9.jar poi-ooxml-schemas-3.9.j ...

  6. [ python ] 查询数据库生成Excel并发送邮件

    开发要求: 由于管理后台导出数据非常缓慢,找程序员解决无果后,自己动手写了一个脚本,每天定时将报表发送给业务部门. 1. 通过条件查询MySQL获取数据       2. 将获取的数据写入到Excel ...

  7. ASP.NET 将Excel导入数据库

    将Excel导入数据库大致流程:  Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...

  8. 通过Workbook类 生成Excel导出数据

    需求: 实现错误信息生成Excel保存到本地让用户查看. 刚开始使用了微软自带的Microsoft.Office.Interop.Excel类库. Microsoft.Office.Interop.E ...

  9. Echarts 数据视图 生成Excel的方法

    一.生成Excel,两大方向:1后台生成Excel 查询数据库,使用NOPI生成Excel.2前台js生成Excel三种方式1)jquery.table2excel.js --采用,优势:兼容IE和C ...

随机推荐

  1. Debian8.3如何设置默认不启动Gnome

    最近又光荣的回归了debian的怀抱,其实我就是跟风,现在做传媒平时也用不到多么高深的计算机知识,纯粹自己瞎鼓捣……嘿嘿,我相信有很多像我一样的人,刚刚装上了debian可以在同事面前华丽丽的装了一逼 ...

  2. 宏定义#define的用法

    预处理#define定义函数 #include <stdio.h> #define Connect(x,y) x##y //"##"表示连接x与y int main(v ...

  3. JS脚本语言是什么意思?

    javascript,Javascript是一种浏览器端的脚本语言,用来在网页客户端处理与用户的交互,以及实现页面特效.比如提交表单前先验证数据合法性,减少服务器错误和压力.根据客户操作,给出一些提升 ...

  4. 如何在一台服务器上安装两个mysql或者更多

    如何在一台服务器上安装两个mysql 1       前言 上篇写了在一台机器上源码编译安装一个mysql,那么如何在一台机器上源码编译安装两个mysql或者更多呢? 2       环境 mysql ...

  5. 解决css3毛玻璃效果(blur)有白边问题

    做一个登录页,全屏背景图毛玻璃效果,实现方法如下: HTML: <body> <div class="login-wrap"> <div class= ...

  6. sql中NVARCHAR(MAX) 性能和占空间分析 varchar(n),nvarchar(n) 长度性能及所占空间分析

    varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 所占空间: nvar ...

  7. Java中的private protected public和default的区别

    转至:http://blog.sina.com.cn/s/blog_74c571240101jaf5.html    类内部  本包  子类 外部包  public    √  √  √  √ pro ...

  8. .NET 需要处理的高性能WEB架构 - .NET架构

    1.如果不想被微软包围(其实微软的一套并不贵,是被谣言传高了),数据层依然可以选择SQL Server数据库和存储过程. 2.缓存不再依赖.net自身提供的缓存机制,迁移到部署在Linux平台上的分布 ...

  9. ExtJS客户端代理

    代理(proxy)分为两大类:客户端代理和服务器端代理.客户端代理主要完成与浏览器本地存取数据相关的工作,服务器端代理则是通过发送请求,从服务器端获取数据.根据各自获取数据的方式,客户端代理和服务器端 ...

  10. h5 notes

    HTML5 服务器发送事件(Server-Sent Events)