2019独角兽企业重金招聘Python工程师标准>>>

# -*- coding: utf-8 -*-
import pymysql
import xlrd
import uuidfrom xlrd import XLRDErrorfrom sdjn_tourism_api.settings import MYSQL_DATABASE, MYSQL_PORT, MYSQL_HOST, MYSQL_PASSWORD, MYSQL_USERclass MysqlHelper(object):def __init__(self):self.__host = MYSQL_HOSTself.__user = MYSQL_USERself.__database = MYSQL_DATABASEself.__port = MYSQL_PORTself.__password = MYSQL_PASSWORDself.__conn = pymysql.connect(host=self.__host, user=self.__user, password=self.__password,database=self.__database, charset='utf8', port=self.__port)self.__cursor = self.__conn.cursor()def mysql_insert(self, sql, data):self.__cursor.execute(sql, data)self.__conn.commit()def mysql_query(self, sql, str=''):if (str != ''):return self.__cursor.execute(sql, str)else:return self.__cursor.execute(sql)def mysql_update(self, sql, str=''):try:result = self.__cursor.execute(sql, str)self.__cursor.commit()except Exception:self.__conn.rollback()print("发生异常")return resultdef close(self):self.__cursor.close()self.__conn.close()def prepare_insertsql(self,tablename,dict_data={}):# 数据库中表对应的键值keys = ",".join(dict_data.keys())# 数据库中对应的键值个数values = ",".join(['%s'] * len(dict_data))sql = r"insert into %s (%s) VALUES (%s)" % (tablename, keys, values)return sqldef prepare_data(self,dict_data={}):data=tuple([pymysql.escape_string(one) for one in dict_data.values()])return data
class ExcelHelper(object):def __init__(self, filepath):try:self.work_book = xlrd.open_workbook(filepath,encoding_override='utf-8')except XLRDError as e:print(e)def get_content(self,sheet_index,row_num,kwargs={}):'''读取excel的内容:param sheet_index:sheet页位于第几个:param row_num :从第几行开始:param kwargs: 传递对应的数据库中的字段的字典表,键表示对应的数据库中的字段的名称,值表示对应的excel中的列号,从0开始,值必须是int类型:param length: 传递excel每行的个数:return:'''for i in range(row_num, self.work_book.sheet_by_index(sheet_index).nrows):dict_map={}data_excel = self.work_book.sheet_by_index(sheet_index).row_values(i, 0, self.work_book.sheet_by_index(sheet_index).row(i).__len__())for key in kwargs.keys():if  isinstance(kwargs.get(key),int):dict_map[key]=data_excel[kwargs.get(key)]else:dict_map[key]=eval(kwargs.get(key))yield dict_mapif __name__=='__main__':excel_path=r'D:\inspur_file\jn济南项目\地理位置字典表.xlsx'excel_helper=ExcelHelper(excel_path)mysql_helper=MysqlHelper()map_dict={'uuid':"uuid.uuid1().hex",'content':4,"distric":2,"country":0,"provence":3,"area_code":1}#第一个sheet也的第一行开始for dict_data in excel_helper.get_content(0,1,map_dict):sql=mysql_helper.prepare_insertsql("t_areamap_dict",dict_data)data=mysql_helper.prepare_data(dict_data)mysql_helper.mysql_insert(sql,data)print("数据导入完成")

转载于:https://my.oschina.net/jiansin/blog/2120728

excel操作----主要用于数据库入库相关推荐

  1. 对Excel表与数据库的操作

    对Excel表与数据库的操作: 如果想将数据从数据库导到Excel表中方法很多: 1  最简单就是在Excel 表中直接导入 步骤如下: 打开导入数据的Excle表格,选择工具栏数据; 下拉栏目中选择 ...

  2. python在excel中的应用-python中的excel操作

    一. Excel在python中的应用 存测试数据 有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到.测试的时候就从数据库中读取出来.这点是非常重要的! 存测试结果 二. Excel中 ...

  3. SpringBoot中使用POI实现Excel导入到数据库(图文教程已实践)

    场景 IDEA中开发SpringBoot项目时需要将Excel模板中数据导入的到数据库. Excel模板如下 实现思想 首先将模板上传到服务器中某路径,并将当前路径存储,然后使用POI自带的 工具类获 ...

  4. Excel表格导入数据库进行判断是否有相同的数据

    Excel表格导入数据库进行判断是否有相同的数据 这个问题困惑了我1天的时间,终于解决了这个问题.这个问题说复杂也不复杂,说简单也不简单. 我先说一下我的业务需求. 我们大家都知道,数据库对应的实体类 ...

  5. c 导入oracle数据库,c导入excel数据到数据库

    报表工具如何实现多次导入Excel 很多人在开发报表的时候会遇到将多张表样相同的excel导入到模板,然后提交至数据库中.但问题是很多情况,在线导入不支持一次性选择多个excel,一次只能选择一个ex ...

  6. python处理excel表格实例-通过实例学习Python Excel操作

    这篇文章主要介绍了通过实例学习Python Excel操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.python 读取Excel # -* ...

  7. python接入excel_使用python将excel数据导入数据库过程详解

    因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...

  8. 河北职称计算机Excel一,2012年河北省职称计算机Excel操作练习一.doc

    2012年河北省职称计算机Excel操作练习一 2012年河北省职称计算机Excel操作练习一 说明:考生必须注意选择指定的工作表,否则不得分. 在文档XLJ.XLS中进行如下操作: 1.计算与填充( ...

  9. python与excel互通_【python】python vs Excel ( 与mysql数据库之间的交互)

    [python]python vs Excel ( 与mysql数据库之间的交互) 通过python与mysql数据库做交互 到目前为止大部分案例的演示数据都是基于文件进行读取的.那么python如何 ...

最新文章

  1. go build命令参数详解
  2. SAP WebIDE一个和Destination相关的问题 - OData下拉菜单里的Destination从哪里来的
  3. html触发js参数怎么用,js 绑定带参数的事件以及手动触发事件
  4. H.264的CAVLC(编码.解码)过程详解
  5. gitlab windows安装_【Thrift】Windows编译Thrift源码及其依赖库
  6. IntelliJ IDEA统计项目代码行数
  7. GDAL源码剖析(四)之命令行程序说明一
  8. bugly热更新,提交补丁时提示未匹配到可应用补丁包的APP版本,请确认补丁包的基线版本是否配置正确
  9. java判断手机号_Java验证手机号
  10. 逻辑覆盖测试(五)条件组合覆盖
  11. 中国天气的各个城市的id,整理成json文件记录
  12. vue-giant-tree模糊搜索,自动展开匹配子节点,再次搜索可重新加载节点
  13. 大学python实训总结-python实训总结
  14. 终身学习C++__小胡亲测
  15. “心”苦不“辛”苦 (7.26)
  16. 实验二 货物进销管理系统
  17. java中计算一段时间内白天的时间和夜晚的时间
  18. python——之self参数
  19. Android Studio开发——蓝牙聊天功能
  20. 《永不止步》--[奥]力克胡哲

热门文章

  1. @scheduled cron启动后和每小时执行_小耶哥: 一个Redis分布式锁又要和小鑫同学扯半个小时!...
  2. 加密日记 android,深挖Android加密到崩溃
  3. java socket 工具_java+socket 简易聊天工具
  4. 混凝土静力受压弹性模量试验计算公式_混凝土静力受压弹性模量试验须进行最少()次预压。A.1B.2C.3D.4...
  5. 改变jupyter notebook的主题背景颜色
  6. 六、线程的实现方式---多线程模型
  7. 在centos上通过yum直接安装最新版gcc和开发工具
  8. 户外lisp导向牌如何安装_有了激光切割导向牌,妈妈再也不用担心我迷路啦
  9. cad转换成png,svg
  10. docker开源系统监控软件Nagios