【Python笔记】Python + xlrd + pymysql读取excel文件数据并且将数据插入到MySQL数据库里面

这篇具有很好参考价值的文章主要介绍了【Python笔记】Python + xlrd + pymysql读取excel文件数据并且将数据插入到MySQL数据库里面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这篇文章,主要介绍Python + xlrd + pymysql读取excel文件数据并且将数据插入到MySQL数据库里面。

目录

一、Python读取excel

1.1、安装xlrd库

1.2、打开excel工作簿

1.3、获取sheet工作表

1.4、操作row数据行

1.5、操作column数据列

1.6、操作单元格

二、读取excel数据保存到MySQL

2.1、完整代码

2.2、运行效果


一、Python读取excel

Python中操作excel文件有很多的库,这篇文章就介绍【xlrd】库读取excel文件,并且结合【pymysql】库将读取的表格数据插入到MySQL数据库里面。

1.1、安装xlrd库

执行下面命令就可以安装xlrd依赖库:

pip install xlrd==1.2.0

注意:这里安装的是xlrd1.2.0,不要安装太高的版本,有些高版本的xlrd已经不支持读取xlsx文件了。xlrd版本过高,运行时候会报错:

raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') 
xlrd.biffh.XLRDError: Excel xlsx file; not supported

1.2、打开excel工作簿

xlrd库中提供了【open_workbook()】和【open_workbook_xls()】两个方法,这里个方法的作用就是打开excel文件,获取到工作簿对象。

# 导入依赖库
import xlrd

# 读取excel文件
workbook = xlrd.open_workbook(filename)

1.3、获取sheet工作表

工作簿对象中,提供了【sheets()】方法,可以获取到所有的sheet工作表数组,可以通过索引获取指定的sheet页,也可以使用【sheet_by_index()】或者【sheet_by_name()】方法,通过索引或名称获取指定的sheet页表。

  • sheets()方法:获取所有sheet工作表对象。
  • sheet_names()方法:获取工作簿中所有sheet页表的名称。
  • sheet_by_index(idx)方法:根据索引获取sheet页表。
  • sheet_by_name()方法:根据名称获取sheet页表。
# 导入依赖库
import xlrd

# 读取excel文件
workbook = xlrd.open_workbook(filename)

# 获取sheet工作表,获取第一个sheet
sheets = workbook.sheets()[0]

1.4、操作row数据行

  • nrows属性:获取sheet工作表中有效的数据行数量。
  • row_lens(index)方法:获取index行的长度,也就是单元格个数。
  • row(index)方法:获取index行数据,数据以【单元格类型:单元格数据】的格式返回一个list列表。
  • row_values(index)方法:获取指定行的所有单元格数据,返回一个[]列表。
  • row_types(index)方法:获取指定行的所有单元格类型,返回一个[]列表。row_type类型有六种,分别如下所示:
    • 0表示empty类型,空类型;
    • 1表示string字符串类;
    • 2表示number数值类型;
    • 3表示date日期类型;
    • 4表示boolean布尔类型;
    • 5表示error类型。

1.5、操作column数据列

  • ncols属性:获取sheet工作表中有效的列数。
  • col_types(index)方法:获取index整列的单元格类型。
  • col_values(index)方法:获取index整列的单元格数值。

1.6、操作单元格

  • value属性:Cell单元格对象可以调用value属性,获取对应的单元格数据。
  • cell(row,col)方法:获取row行col列的单元格对象,以【单元格类型:单元格数据】格式返回。
  • cell_type(row,col)方法:获取row行col列的单元格类型。
  • cell_value(row,col)方法:获取row行col列的单元格数据。

二、读取excel数据保存到MySQL

2.1、完整代码

# 导入依赖库
import xlrd
import pymysql
from xlrd import xldate_as_tuple
from datetime import date

# 定义变量
filename = r'F:\import_data.xlsx'


# 根据单元格类型,格式化数据
def format_all(val, val_type, date_mode):
    if val_type == 0:  # empty 空类型
        return ''
    if val_type == 1:  # string字符串类型
        return val
    if val_type == 2:  # number数值类型
        return format_num(val)
    if val_type == 3:  # date日期类型
        return format_date(val, date_mode)
    if val_type == 4:  # boolean布尔类型
        return val
    if val_type == 5:  # error类型
        return val
    else:
        return val


# 格式化数字类型
def format_num(num):
    if isinstance(num, int):
        return num
    if isinstance(num, float):
        num = str(num).rstrip('0')  # 删除小数点后多余的0
        num = int(num.rstrip('.')) if num.endswith('.') else float(num)  # 只剩小数点直接转int,否则转回float
        return num


# 格式化时间
def format_date(dt, date_mode):
    return date(*xldate_as_tuple(dt, date_mode)[:3]).strftime('%Y-%m-%d')


# 读取excel文件
workbook = xlrd.open_workbook(filename)

# 获取sheet工作表,获取第一个sheet
sheets = workbook.sheets()[0]

# 读取所有数据行rows
rows = sheets.nrows

# 遍历每一行数据
insertData = []
for row in range(0, rows):
    rowData = sheets.row_values(row)
    rowType = sheets.row_types(row)
    # 数据类型格式化
    for index in range(0, len(rowData)):
        rowData[index] = format_all(rowData[index], rowType[index], workbook.datemode)
    insertData.append(rowData)


print('待插入数据:', insertData)
# 数据写入mysql数据库
# 创建数据库连接
conn = pymysql.connect(host='localhost', user='root', passwd='root', db='db-demo', charset='utf8')
# 创建游标对象
curses = conn.cursor()
# 编写sql语句
sql = 'INSERT INTO t_your_table (id, num, time, val) VALUES (%s, %s, %s, %s);'
# 执行批量插入
curses.executemany(sql, insertData)
# 提交事务
conn.commit()
# 关闭连接
curses.close()
conn.close()

2.2、运行效果

【Python笔记】Python + xlrd + pymysql读取excel文件数据并且将数据插入到MySQL数据库里面,【Python笔记】,excel,mysql,Python,pymsql,xlrd,xlrd读取excel

到此,Python读取excel数据插入到MySQL数据中就介绍完啦。

综上,这篇文章结束了,主要介绍Python + xlrd + pymysql读取excel文件数据并且将数据插入到MySQL数据库里面。文章来源地址https://www.toymoban.com/news/detail-606123.html

到了这里,关于【Python笔记】Python + xlrd + pymysql读取excel文件数据并且将数据插入到MySQL数据库里面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python读取表格数据将pdf文件转excel文件最新可用方法

    【ptf】 【转换后Excel】 可用看到表格内容位置一致,转换完成 (1)安装camelot库 (2)转换代码

    2024年02月15日
    浏览(43)
  • 用Python的pandas读取excel文件中的数据

    hello呀!各位铁子们大家好呀,今天呢来和大家聊一聊用Python的pandas读取excel文件中的数据。 使用pandas的 read_excel() 方法,可通过文件路径直接读取。注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件、并同时指定sheet下的数据。可以一次读

    2024年02月02日
    浏览(58)
  • Python读取excel文件往Elasticsearch数据插入时遇到的问题

    背景:需要完成一个功能,使用python读取一个excel文件进行读取数据,然后将这些数据直接保存到Elasticsearch中。 用到的工具:python、Elasticsearch 一、问题描述 在将项目部署到甲方的时候,出现用户导入文件无法进行正常插入到Elasticsearch中的情况,当时看的服务器的日志,报

    2023年04月09日
    浏览(44)
  • Python| 水文 |批量读取NC文件降水数据并导出为Excel相应格式

    ①首先需要在网上下载相应whl的安装包 (注意:一定要保证版本与Python解释器版本一致,比如我的解释器是3.11版本,电脑是windows64位的系统,那么就选择netCDF4-1.6.5-cp311-cp311-win_amd64.whl进行下载) 在网上看到过一些下载地址,但是好多没法用,这里提供一个,不需要梯子:

    2024年04月28日
    浏览(40)
  • vs code导入excel文件并且解析excel文件数据

    实习工作需要通过vs code导入excel文件并且解析excel文件数据,学习整理了一下相关方法分享给大家^_^ 要在 VS Code 中导入和解析 Excel 文件,你可以使用一些库和扩展来帮助你完成这个任务。以下是一种常用的方法: 安装必要的库和扩展: 安装  pandas  库:在终端窗口中运行 

    2024年02月03日
    浏览(63)
  • 【一种使用浏览器读取本地excel、josn等数据文件的方法】Python+JavaScript+HTML实现

    一般来说,为了网络访问安全,浏览器是不能直接加载本地文件的,IE内核的浏览器提供了AX控件实现本地文件的读取,Chrome 86 版本后也提供了相应的API,但都存在使用限制和兼容性问题。有时开发者只是想利用浏览器编制一些简单的脚本完成一些任务,不想学习C、C++、Pyt

    2024年02月07日
    浏览(66)
  • Python操作Excel表格的模块xlrd的简单介绍

    Python操作Excel表格的模块xlrd的简单介绍 处理数据对Python来说,比较容易,操作简单,功能强大,短短几行代码,就可处理大量的数据信息,下面介绍Python处理Excel表格的一个模块:xlrd。 一、xlrd简介及安装 xlrd是Python处理Excel表格数据的一个模块,他可以对Excel数据进行读取,

    2024年02月01日
    浏览(41)
  • 【Pyhton+Excel】利用Python把Excel的数据导入并且绘图

    首先使用pandas库中的read_excel()函数从Excel文件中读取数据,并将其存储在data变量中。然后,我们从data变量中提取需要绘制的列,并将其分别存储在x和y变量中。最后,使用matplotlib库中的plot()函数绘制折线图,并设置图表标题和坐标轴标签,最后使用show()函数显示图表。 需要

    2024年02月12日
    浏览(47)
  • Python笔记一之excel的读取

    本文首发于公众号:Hunter后端 原文链接:Python笔记一之excel的读取 这里我常用的 python 对于 excel 的读取库有两个,一个是 xlsxwriter 用于操作 excel 的写入,一个是 xlrd 用于 excel 文件的读取。 使用的库的版本如下: xlsx==1.2.6 xlrd==1.1.0 新建一个 excel 添加一个 sheet: sheet 表格数据

    2024年02月04日
    浏览(43)
  • Python 创建或读取 Excel 文件

    Excel是一种常用的电子表格软件,广泛应用于金融、商业和教育等领域。它提供了强大的数据处理和分析功能,可进行各种计算和公式运算,并能创建各种类型的图表和可视化数据。Excel的灵活性使其成为处理和管理数据的重要工具。本文将介绍如何使用  Spire.XLS for Python  通

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包