用python实现数据库导出,编辑(某字段中所有非数值用指定值代替)另存到新excel并打包py为exe文件

  1. 程序开发用到的第三方库有:

pymysql:用于数据库连接,数据库查询

openpyxl:用于打开、编辑、保存xlsx文件

pandas:用于读取sql查询到的数据及保存到excel

pyinstaller:用于打包python文件

  1. 功能说明:

用户自定义数据库IP,要导出的mapcode,随后导出数据库中的数据到original.xlsx

读取excel,批量修改其中的值,保存到new.xlsx(运行程序前不能打开同文件名的文件,若有)

修改内容举例:

从表格中第二行开始,到行rows_incTitle结束,将列名:code(第2列)以及列名:bind_location(第21列)中的非数字用输入的标签代替

  1. 关键知识点(根据功能说明中的内容)

    1. python语句基本常识

      1. lbl = input('提示') #输入后复制到lbl为str格式

    2. pd.read_sql连接数据库查询、查询语句参数化、查询后导出到excel表

import pymysql
db = pymysql.connect(
    host=localhost,
    port=3306,
    user="user",  # 在这里输入用户名
    password="user",  # 在这里输入密码
    charset='utf8mb4'
)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()  # 创建游标对象
sql = 'show databases'  # sql语句
cursor.execute(sql)  # 执行sql语句
sql = 'use berry;'  # sql语句
cursor.execute(sql)  # 执行sql语句
# 运用pandas的pd.read_sql()函数:将SQL查询或数据库表读入DataFrame 以下一句代码运行过可用 # 参数修改 来源MAPcode
# sql中的map_code参数化
sql = "select * from pol where code=%(pid)s and is_delete='0' ORDER BY id DESC"
code = 'M123'
# 给sql中的map_code传入值 使用mapCode值
df = pd.read_sql(sql, db, params={'pid': code})
# 保存到excel表格,如果原来有同名文件,会覆盖保存
df.to_excel(r'original.xlsx', index=False)
  1. openpyxl库,可以处理表格

from openpyxl import load_workbook # 这种导入方法不用关闭工作表
# #读取original.xlsx文件赋给wbLoc(navicat应用导出到excel)。路径:D:\py\original.xlsx
wbLoc = load_workbook('./original.xlsx')
# 打开当前活动的工作表(适合一个工作簿只有一个工作表) 当前活动工作表定义为wsLoc
wsLoc = wbLoc.active
# 获取工作表的最大行数包含表头这一行(最大行数记录到:rows_incTitle-包括表头)
rows_incTitle = wsLoc.max_row

   # 修改逻辑:去掉单元格值(单元格的值为str格式)中所有非数字;然后在头部加上设定的标签lbl;确保每个编码的唯一性。要注意仅处理有值的单元格。
for row in wsLoc.iter_rows(min_row=2, max_row=wsLoc.max_row, min_col=21, max_col=21):
    for cell in row:
        if cell.value is not None:  # 这一行必须加,因为bind_location这列值可以为空,仅修改非空值。不加此行会返回报错:‘NoneType‘ object is not iterable
            cell.value = lbl +''.join(filter(str.isdigit, cell.value))
# 另存表格为:new.xlsx
wbLoc.save('./new.xlsx')

  1. Pycharm debug

步骤1 单击语句左侧打断点

步骤2 选择对应的文件,点击右侧debug按钮

步骤3 到达断点处,查看当前的各个变量,以及变量的当前值,和值的类型

更多说明见原文链接:

Pycharm如何打断点进行调试?_pycharm断点调试_程序员馨馨的博客-CSDN博客

  1. 打包py文件到可执行文件的方法

    1. py文件使用代码编写程序运行成功(比如pycharm)

    2. pip install pyinstaller 安装此程序

    3. 高级系统设置——环境变量——系统变量——Path——编辑 增加,如下图。根据实际的三方库路径决定

图中的值:C:\Program Files\Python38\Lib\site-packages

  1. pyinstaller -F  D:\py\mapeditor-export-modify.py 生成exe (C:\Windows\System32\cmd.exe管理员模式打开,在py目录运行后打包成功但运行失败;D盘根目录打包成功+打包后的exe运行成功)。下方截图中提示了dist文件夹下生成了exe文件

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值