使用python实现查询MySQL并将数据写入Excel

  介绍

使用python实现查询MySQL并将数据写入Excel ?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

表结构如下:

创建表“用户”(
  “id”bigint (20) NOT NULL AUTO_INCREMENT,
  “用户名”varchar(50)核对utf8mb4_bin NOT NULL评论& # 39;用户名& # 39;,
  “密码”varchar(255)字符集utf8mb4默认空评论& # 39;密码& # 39;,
  “电话”varchar(20)字符集utf8mb4默认空评论& # 39;手机号& # 39;,
  “电子邮件”varchar(255)字符集utf8mb4默认空评论& # 39;邮箱& # 39;,
  ‘create_time datetime默认CURRENT_TIMESTAMP评论& # 39;创建时间& # 39;,
  主键(“id”)
  )引擎=InnoDB的默认字符集=utf8mb4整理=utf8mb4_bin; 

插入3行数据

插入“测试”。“用户”(“id”、“用户名”、“密码”、“电话”,“电子邮件”、“create_time”)值(& # 39;1 & # 39;& # 39;小# 39;,& # 39;123 & # 39;,& # 39;12345678910 & # 39;,& # 39;123 @qq.com& # 39;, & # 39; 2020-04-10 01:22:07& # 39;);
  插入“测试”。“用户”(“id”、“用户名”、“密码”、“电话”,“电子邮件”、“create_time”)值(& # 39;2 & # 39;& # 39;张# 39;,& # 39;123 & # 39;,& # 39;12345678910 & # 39;,& # 39;123 @qq.com& # 39;, & # 39; 2020-04-10 01:22:07& # 39;);
  插入“测试”。“用户”(“id”、“用户名”、“密码”、“电话”,“电子邮件”、“create_time”)值(& # 39;3 & # 39;& # 39;lisi # 39;, & # 39; 123 & # 39;, & # 39; 12345678910 & # 39;, & # 39; 123 @qq.com& # 39;, & # 39; 2020-04-10 01:22:07& # 39;); 

<强>二,基本写法

安装模块

 pip3安装xlwt pymysql 

test_excel。py

# !/usr/bin/env python3   utf - 8编码:   进口操作系统   进口xlwt   进口pymysql   进口日期时间      类MysqlToExcel(对象):   def __init__(自我):   自我。主机=& # 39;10.212.21.92& # 39;   自我。用户=& # 39;根# 39;   自我。passwd=& # 39;这样的# 39;   自我。db_name=& # 39;测试# 39;   自我。端口=3306   自我。file_name=& # 39; data.xls& # 39;      def get_query_results(自我):   从test.users" sql=皊elect *;      康涅狄格州=pymysql.connect (   主机=self.host,   用户=self.user,   passwd=self.passwd,=self.port港   数据库=self.db_name,   charset=& # 39; use utf8 # 39;   cursorclass=pymysql.cursors.DictCursor   )   坏蛋=conn.cursor() #创建游标   cur.execute (sql) #执行sql命令   结果=cur.fetchall() #获取执行的返回结果   #输出(结果)   cur.close ()   conn.close() #关闭mysql连接   返回结果      def generate_table(自我):   “““   生成excel表格   返回:   “““   #删除已存在的文件   如果os.path.exists (self.file_name):   os.remove (self.file_name)      结果=self.get_query_results ()   #输出(结果)   如果没有结果:   print(“查询结果为空“)   返回假      #创建excel对象   f=xlwt.Workbook ()   sheet1=f.add_sheet (& # 39; Sheet1& # 39;, cell_overwrite_ok=True)      #列字段   column_names=[& # 39; id # 39; & # 39;用户名# 39;,& # 39;密码# 39;,& # 39;电话# 39;,& # 39;电子邮件# 39;】      #写第一行,也就是列所在的行   因为我在范围(0,len (column_names)):   sheet1。写(0,我,column_names[我])      #写入多行   num=0 #计数器   我的结果:   sheet1。写(num + 1, 0,我[& # 39;id # 39;])   sheet1。写(num + 1, 1,我[& # 39;用户名# 39;])   sheet1。写(num + 1, 2,我[& # 39;密码# 39;])   sheet1。写(num + 1, 3,我[& # 39;电话# 39;])   sheet1。写(num + 1, 4,我[& # 39;电子邮件# 39;])   #日期转换为字符串   值=https://www.yisu.com/zixun/i [' create_time '] .strftime (“Y % - % - % d % H: % m: % S ')   sheet1。写(num + 1 5值)      num +=1 #自增1      #保存文件   f.save (self.file_name)      #判断文件是否存在   如果不是os.path.exists (self.file_name):   打印(“生成excel失败”)   返回假      打印(“生成excel成功”)   还真      if __name__==癬_main__”:   .generate_table MysqlToExcel () ()

执行输出:

查看excel表

使用python实现查询MySQL并将数据写入excel“> </p> <p> <强>三、高级写法</强> <h2 class=使用python实现查询MySQL并将数据写入Excel