Python(11)萌新也能看懂之——用Python读取数据库,然后写入Excel里

和excel结合

Python操作MySQL数据库的教程:

Python(10)萌新也能看的懂——用PyMySQL处理MySQL数据库

这个是同步行为,所以可以先用上面那篇教程,读取mysql的数据。

然后再结合上一篇Python(9)萌新也能看的懂——如何用openpyxl处理excel

将读取到的数据写入到excel里。

0、准备工作

如果缺少模块,请参照本博客和上一篇博客安装模块。

如果缺少MySQL,请自行安装MySQL,推荐5.6.7,

附教程:mysql(一)——安装、启动、进入、创建表、检查表结构、类型说明、更改表项名、插入值

1、excel模块

1、新建文件夹,名称为excel,里面创建__init__.py

2、将以下内容复制粘贴进去;

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# 新建一个新的
# 导入模块
from openpyxl import Workbook

def write(fn):
    # 新建一个工作簿
    wb = Workbook()
    # 拿取第一个工作表
    ws = wb.worksheets[0]
    # 设置这个工作表的名字
    ws.title = "first sheet"
    # 写值
    fn(ws)
    # 存储这个工作表
    wb.save(filename='test.xlsx')
2、mysql模块

1、新建文件夹,名称为MyServer,里面创建__init__.py

2、将以下内容复制粘贴进去;

注意修为用户名、密码和库名,以及SQL语句的表名,为自己数据库的实际名字和数据

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# 导入MySQL驱动:
import pymysql

config = {
    'host': "localhost",
    'user': "root",
    'password': "123456",
    'db': "test",
    'charset': 'utf8mb4'
}


# 参数有个默认名字(请根据自己实际修改)
def loadDataBaseFromMyServer(database='test'):
    # 打开数据库连接
    db = pymysql.connect(**config)

    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()

    try:
        # 使用 execute()  方法执行 SQL 查询
        cursor.execute("SELECT * from %s" % database)
        # 使用 fetchall() 方法获取所有数据,获取结果是一个二维tuple
        data = cursor.fetchall()
    except BaseException as e:
        print(e)
        # 发生错误时回滚
        db.rollback()

    # 关闭数据库连接
    db.close()
    return data


if __name__ == '__main__':
    print(loadDataBaseFromMyServer())
3、主模块

1、新建test.py文件,将以下内容复制进去;

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 加载读取模块
from MyServer import loadDataBaseFromMyServer;
from excel import write;

data = loadDataBaseFromMyServer()

def writeIntoExcel(ws):
    for row, rowData in enumerate(data):
        for col, value in enumerate(rowData):
            # 因为下标从0开始,所以要加1
            ws.cell(row=row + 1, column=col + 1, value='%s' % value)

write(writeIntoExcel)
print('写入完成')
  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值