利用Python制作本地Excel的查询与生成的程序问题

 更新时间:2022年06月29日 11:55:28   作者:毕加锁  
最近遇到这样一个项目需求制作一个程序有一个简单的查询入口实现Excel的查询与生成,今天教大家利用Python制作本地Excel的查询与生成的程序,感兴趣的朋友跟随小编一起看看吧

前言

今天教大家利用Python制作本地Excel的查询与生成的程序

需求

制作一个程序 有一个简单的查询入口 实现Excel的查询与生成

实验步骤

1打开一个exe 弹出一个界面

2有一个查询 卡号 点击查询

3下方展示查询的结果 同时将这个查询的结果 追加到一个新的结果Excel文件里

4新的结果Excel文件 格式和源文件格式相同 但是每次都在最后追加

今天教大家利用Python制作本地Excel的查询与生成的程序

Excel预览图片

1.2 导入模块并读取Excel文件

等会要用的模块有:pandas、os、xlwt和uuid
用import导入的代码:

import pandas, os, xlwt, uuid

导入好后,就要读取Excel文件了。读取Excel要用到pandas的read_excel函数。

try:
    exl = pandas.read_excel(aim_path)
except:
    print('找不到文件!请检查一下文件路径或文件是否存在')
    os._exit(0)

刚刚导入os模块就是为了做异常捕获找不到文件时的退出。

查询

2.1 Excel的索引与输入

为了方便后面查询,要把DataFrame的索引(index)设为查询输入的卡号。接着,输出以卡号为索引的DF,以便用户查询。最后,就开始循环输入了。

exl.set_index('卡号', inplace = True)
print(f'{exl}\n')
while 1:
    try:
        idx = input('卡号(输入“退出”即可退出):')
        if idx == '退出':
            os._exit(0)

2.2 开始查询、丰富程序

查询用dataframe.loc[index]来完成,最后输出返回的Series。为了避免用户输入非卡号信息,就又加了异常捕获。

        res = exl.loc[idx]
        print(f'\n{res}\n')
    except KeyError:
        print('你的卡号可能输错了!我找不到这个卡号的人哦~\n')
        continue
    except:
        print('有些错误发生了!\n')
        continue

追加查询结果到Excel

3.1 读取或新建Excel

3.1.1 读取

读取跟上面一样,用read_excel

    try:
        res_exl = pandas.read_excel(res_path)

3.1.2 新建Workbook和Sheet

现在轮到xlwt模块大展身手啦~ 用Workbook函数来新建Workbook;用add_sheet函数新增Sheet

    except:
        workbook = xlwt.Workbook()
        sheet = workbook.add_sheet('new')
        col = 0

3.1.2 写入Column

在Column的位置,需要填入查询的Excel的列索引,用

list(pandas.read_excel(aim_path).columns.values)

可以获取到。然后把列索引以xlwt.write填进去,最后把DF保存再读取这个Excel。

for i in list(pandas.read_excel(aim_path).columns.values):
            sheet.write(0, col, i)
            col += 1
        workbook.save(res_path)
        res_exl = pandas.read_excel(res_path)

3.2 追加结果

首先,把结果res变量设置成列表类型。然后,在这个列表里面新增结果没有的卡号。最后把这个列表设置成一个Series(索引为查询的Excel的列索引)。

    res_series_data = list(res)
    res_series_data.insert(2, idx)
    res_series = pandas.Series(
        res_series_data, 
        index = list(
            pandas.read_excel(aim_path).columns.values
        )
    )

现在建好了Series,准备追加了。追加完后还要保存这个Excel。

    res_exl.loc[str(uuid.uuid1())] = res_series
    try:
        res_exl.to_excel(res_path, index = False)
    except:
        print('写入失败')

这里用了uuid.uuid1来随机产生索引,避免重复而修改其它人的值。最后几行就是保存的操作,python index = False的意思就是把索引隐藏掉了。

完整代码

try:
    exl = pandas.read_excel(aim_path)
except:
    print('找不到文件!请检查一下文件路径或文件是否存在')
    os._exit(0)
exl.set_index('卡号', inplace = True)
print(f'{exl}\n')
while 1:
    try:
        idx = input('卡号(输入“退出”即可退出):')
        if idx == '退出':
            os._exit(0)
        res = exl.loc[idx]
        print(f'\n{res}\n')
    except KeyError:
        print('你的卡号可能输错了!我找不到这个卡号的人哦~\n')
        continue
    except:
        print('有些错误发生了!\n')
        continue
 
    try:
        res_exl = pandas.read_excel(res_path)
    except:
        workbook = xlwt.Workbook()
        sheet = workbook.add_sheet('new')
        col = 0
        for i in list(pandas.read_excel(aim_path).columns.values):
            sheet.write(0, col, i)
            col += 1
        workbook.save(res_path)
        res_exl = pandas.read_excel(res_path)
    res_series_data = list(res)
    res_series_data.insert(2, idx)
    res_series = pandas.Series(
        res_series_data, 
        index = list(
            pandas.read_excel(aim_path).columns.values
        )
    )
    res_exl.loc[str(uuid.uuid1())] = res_series
    try:
        res_exl.to_excel(res_path, index = False)
    except:
        print('写入失败')

到此这篇关于利用Python制作本地Excel的查询与生成的程序的文章就介绍到这了,更多相关PythonExcel查询生成的程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何在Python中对文件进行操作

    如何在Python中对文件进行操作

    这篇文章主要介绍了如何在Python中对文件进行操作,文章围绕主题展开内容,即使用Python中内置的open()函数来打开文件,返回文件对象,并对文件进行处理
    2022-08-08
  • pytorch 共享参数的示例

    pytorch 共享参数的示例

    今天小编就为大家分享一篇pytorch 共享参数的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python 判断文件还是文件夹的简单实例

    python 判断文件还是文件夹的简单实例

    今天小编就为大家分享一篇python 判断文件还是文件夹的简单实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了

    在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了

    今日重点:① python暴力拿下WiFi密码,②python拿下路由器管理页面,文中有非常详细的代码示例,干货满满,,需要的朋友可以参考下
    2021-05-05
  • Python制作一个仿QQ办公版的图形登录界面

    Python制作一个仿QQ办公版的图形登录界面

    这篇文章主要介绍了Python制作一个仿QQ办公版的图形登录界面,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • python爬虫之请求模块urllib的基本使用

    python爬虫之请求模块urllib的基本使用

    urllib是python内置的HTTP请求库,是一个用来处理网络请求的python标准库,下面这篇文章主要给大家介绍了关于python爬虫之请求模块urllib的基本使用,需要的朋友可以参考下
    2022-04-04
  • python scrapy爬虫代码及填坑

    python scrapy爬虫代码及填坑

    这篇文章主要介绍了python scrapy爬虫代码及填坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python 使用 docopt 解析json参数文件过程讲解

    Python 使用 docopt 解析json参数文件过程讲解

    这篇文章主要介绍了Python 使用 docopt 解析json参数文件过程讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python3内置函数chr和ord实现进制转换

    Python3内置函数chr和ord实现进制转换

    这篇文章主要介绍了Python3内置函数chr和ord实现进制转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 实例Python处理XML文件的方法

    实例Python处理XML文件的方法

    这篇文章主要介绍了实例Python处理XML文件的方法,包括用Python处理XML大文件的情况,需要的朋友可以参考下
    2015-08-08

最新评论