Python 办公自动化 案例 将Excel 数据导入数据库 【2】推荐

 前言:

前面我们梳理了如何处理Excel数据,详细的回顾了如何读取Excel行、列以及单元格数据,如何创建一个Excel、向Excel填充数据以及保存Excel数据。主要是xlrd读取xlwt写入两个python第三方模块对Excel数据操作的一些常用函数以及属性。点这里回顾

那么我们如何把处理好的Excel数据导入Mysql数据库,并对数据进行管理呢?今天这个案例就是运用前面所回顾的知识点进行案例实践,如何把工作量日常上报的文件管理。

这里需要用到的环境: python的运行环境、安装mysql数据库、安装Navicat工具。

总共分为四个步骤:

  1. 通过xlrd模块读取Excel数据
  2. 通过plmysql模块连接数据库
  3. 处理数据、插入数据库
  4. 关闭数据库连接

目录

 前言:

一、xlrd模块读取Excel数据

 二、通过plmysql模块连接数据库

2.1 安装plmysql依赖

 2.2 导入依赖并连接数据库

三、处理数据、插入数据库

四、关闭数据库连接


一、xlrd模块读取Excel数据

这里已经安装python的第三方模块,导入xlrd模块,打开excel文件已经工作表,定义一个用来存放excel数据的数组列表,把循环excel生成的数据添加到列表中。

# 导入python第三方模块
import xlrd 
#打开提前准备好的excle文件
data = xlrd.open_workbook("data2.xls")
#加载index为0 也就是第一个sheet工作表 
sheet = data.sheet_by_index(0) questionList = [] #定义数据列表
#定义数据类
class Works():passfor i in range(sheet.nrows):if i > 1:obj = Works() # 构建要导入的数据对象obj.hospital = sheet.cell(i,0).value # 科室1的his数据obj.area = sheet.cell(i,1).value # 科室1平台数据obj.hospital2 = sheet.cell(i,2).value # 科室2的his数据obj.area2 = sheet.cell(i,3).value # 科室2平台数据obj.hospital3 = sheet.cell(i,4).value # 科室3的his数据obj.area3 = sheet.cell(i,5).value # 科室3平台数据obj.hospital4 = sheet.cell(i,6).value # 科室4的his数据obj.area4 = sheet.cell(i,7).value # 科室4平台数据questionList.append(obj)
print(questionList) 

这里是打印的数据,可以看到我们已经成功把excel的数据添加到questionList中。

 二、通过plmysql模块连接数据库

这里连接数据库我们用的是plmysql。mysql的下载安装配置以及如何在navicat工具中连接使用,navicat的安装也有说明。

2.1 安装plmysql依赖
# 安装plmysql依赖
pip install plmysql
 2.2 导入依赖并连接数据库

这里把数据库连接以及数据的增删改查封装到一个文件中,代码如下:

导入文件并连接数据库。 

# mysqlhelper 是封装后的文件
from mysqlhelper import * 
# 链接到数据
db = dbhelper('127.0.0.1',3306,"root","zx123","demo")

三、处理数据、插入数据库

这里数据库已经先创建了一个demo数据库和hospitals数据表,供后面插入数据使用。

 demo数据库中新建的数据表,现在数据还是空的。(关于数据库数据表增删改查请参考这里)

# 插入数据
sql = "insert into hospitals (hospital,area,hospita2,area2,hospital3,area3,hospital4,area4) values (%s,%s,%s,%s,%s,%s,%s,%s)"
val = [] #定义空的元组
for item in questionList:val.append((item.hospital,item.area,item.hospital2,item.area2,item.hospital3,item.area3,item.hospital4,item.area4))
# print(val)
db.executemanydata(sql,val)

现在我们运行文件,执行向数据插入数据的操作。可以看到代码没有报错,并且上面我们打印的val数据也在控制台成功打印。

我们现在看数据库,经过刷新之后数据库已经成功插入前面我们准备的Excel数据. 

 

现在我们已经可以把excel数据在数据库进行管理了。 

四、关闭数据库连接

数据库连接之后我们完成了对数据库的增删改查之后记得关闭连接。

管理excel数据导入数据库管理的项目中用到的代码放在资源中心,有需要请自行下载,有问题请在评论区留言指正,感谢。

另外:数据库下载安装连接 | mysql入门基础知识 | 外键约束|各种查询 | Node.js中使用Mysql


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/404830.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JVM】深入理解类加载机制(一)

深入理解类加载机制 Klass模型 Java的每个类,在JVM中都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息…从继承关系上也能看出来,类的元信息是存储在元空间的。普通的Java类在JVM中对应的是InstanceKlass(C)…

4款AI 生成 PPT的工具,帮你赶上演示文稿的新趋势!

AI 生成 PPT 最大的优势就在于它能够帮助我们提高效率。如果我们自己制作的话就需要花费大量的时间去收集资料、构思布局、设计排版。而现在,有了AI工具,一切就迎刃而解,如果大家需要这样的工具,可以看看这4款。 1、笔灵办公 直通…

RabbitMQ 的工作原理

下面是rabbitmq 的工作原理图解 1、客户端连接到消息队列服务器,打开一个channel。 2、客户端声明一个exchange,并设置相关属性。 3、客户端声明一个queue,并设置相关属性。 4、客户端使用routing key, 在exchange和queue 之间…

为什么说网络安全行业是IT行业最后的红利?

前言 2023年网络安全行业的前景看起来非常乐观。根据当前的趋势和发展,一些趋势和发展可能对2023年网络安全行业产生影响: 5G技术的广泛应用:5G技术的普及将会使互联网的速度更快,同时也将带来更多的网络威胁和安全挑战。网络安全…

《向量数据库 Faiss 搭建与使用全攻略》

一、Faiss 概述 Faiss 是由 Facebook AI 团队开发的一款强大工具,在大规模数据处理和相似性搜索领域占据着重要地位。 在当今信息爆炸的时代,数据规模呈指数级增长,如何从海量数据中快速准确地找到相似的数据成为了关键挑战。Faiss 应运而生…

《黑神话.悟空》:一场跨越神话与现实的深度探索

《黑神话.悟空》:一场跨越神话与现实的深度探索 在国产游戏日益崛起的今天,《黑神话.悟空》以其独特的剧情、丰富的人物设定和深刻的主题,成为了无数玩家翘首以盼的国产3A大作。这款游戏不仅是一次对传统故事的创新演绎,更是一场对…

AIoTedge边缘计算平台V1.0版本发布

AIoTedge边缘计算平台V1.0,一款创新的AIoT解决方案,现已正式发布。该产品集成了NodeRED软网关、边缘物联网平台和边缘AI能力,为企业提供强大的边云协同能力。它支持设备管理和泛协议接入,确保不同设备间的无缝连接。AIoTedgeV1.0还…

[C#]winform基于深度学习算法MVANet部署高精度二分类图像分割onnx模型高精度图像二值化

【训练源码】 https://github.com/qianyu-dlut/MVANet 【参考源码】 https://github.com/hpc203/MVANet-onnxrun 【算法介绍】 二分图像分割(DIS)最近出现在从高分辨率自然图像中进行高精度对象分割方面。在设计有效的DIS模型时,主要的挑战是…

SDCS-IOE-2C 3ADT220090R007模块控制器

SDCS-IOE-2C 3ADT220090R007模块控制器 SDCS-IOE-2C 3ADT220090R007模块控制器 SDCS-IOE-2C 3ADT220090R007模块控制器 SDCS-IOE-2C 3ADT220090R007模块控制器引脚线 SDCS-IOE-2C 3ADT220090R007模块控制器说明书 SDCS-IOE-2C 3ADT220090R007模块控制器线路图 SDCS-IOE-2…

Snipaste 的一款替代工具 PixPin,支持 gif 截图、长截图和 OCR 文字识别,功能不是一点点强!

Snipaste 的一款替代工具 PixPin,支持 gif 截图、长截图和 OCR 文字识别,功能不是一点点强! PixPin 的名字来源于“Pixel Pin”,简单来说是一个截图、贴图的工具,但是 PixPin 以截图和贴图两大功能为核心做了大量的优…

mysql速起架子

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 下载mysql tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 解压 mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0 改名 去到bin目录 cd bin mkdir data gr…

Python(PyTorch)硅光电倍增管和量化感知训练亚光子算法验证

🎯要点 🎯亚光子光神经网络矩阵计算 | 🎯光学扇入计算向量点积 | 🎯表征测量确定不同光子数量下计算准确度 | 🎯训练全连接多层感知器基准测试光神经网络算法数字识别 | 🎯物理验证光学设备设置 | &#x…

Controller中接收数组参数 post请求中在body中传+post请求中通过表单形式传(x-www-form-urlencoded)

1、场景 需要根据用户id集合批量删除用户数据,前端使用post请求,controller中参数接收数组参数并根据用户id删除用户基本信息 2、分析处理: 2.1、前端请求类型contentType:application/json 请求体中为json字符串,后端新建一个Us…

2024年8月13日~8月19日周报

目录 一、前言 二、完成情况 2.1 遇到的问题及解决 2.1.1 盐数据网络情况与损失函数不下降 2.1.2 其他问题 2.2 损失函数与介绍部分讨论 三、下周计划 一、前言 上周主要完成: ①对比实验执行:InversionNet、DD-Net70②消融实验执行:…

如何选择较为安全的第三方依赖版本?

如何选择较为安全的第三方依赖版本? 本文概览1.1 前言1.1.1 学会看第三方开源库的版本发布说明1.1.2 尽可能使用 starer 匹配的第三方开源库1.1.3 参考Maven 中心仓库的安全警告信息 本文概览 本篇博文分享如何选择较为安全的第三方依赖版本的方法。 1.1 前言 众…

【 亿邦动力网-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

python语言day7 函数式编程 面向对象编程

Java 函数式编程_java函数式编程-CSDN博客 25.Java函数式编程-CSDN博客 函数式编程: 通过调用函数send_email(),完成业务需求。将具体的业务需求封装成一个函数这样的一种解决问题的思想称它为函数式编程。 在java中本来没有函数的概念,因为…

【开源分享】CommLite 跨平台文本UI串口调试助手

文章目录 1. 简介2. 编译3. 使用4. 借鉴&思考参考 1. 简介 CommLite是一款基于CSerialPort的文本UI串口调试助手。 gitee仓库 2. 编译 编译非常简单,按照文档操作即可: $ git clone --depth1 https://github.com/itas109/CommLite.git $ cd Comm…

网易云音乐故障 2 小时,这次到底谁背锅?(今天记得领补偿)

大家好,我是程序员鱼皮,8 月 19 日下午,网易云音乐突发严重故障,并登顶微博热搜,跟黑神话悟空抢了热度。 根据用户的反馈,故障的具体表现为:用户无法登录、歌单加载失败、播放信息获取失败、无法…

聊聊适配器模式

目录 适配器模式概念 主要实现方式 主要组成 UML用例图 代码示例 生活场景 应用场景 适配器模式概念 适配器模式属于结构型设计模式,它的主要目的是将一个类的接口转换成客户端所期望的另一种接口形式,使得原本接口不兼容的类可以一起工作。 主…