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

简介: 利用Python制作本地Excel的查询与生成的程序

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

目录

前言

需求

实验步骤

Excel预览图片

查询

追加查询结果到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)
AI 代码解读

except:

print('找不到文件!请检查一下文件路径或文件是否存在')
os._exit(0)
AI 代码解读

刚刚导入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)
AI 代码解读

2.2 开始查询、丰富程序

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

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

追加查询结果到Excel
3.1 读取或新建Excel

3.1.1 读取

读取跟上面一样,用read_excel

try:
    res_exl = pandas.read_excel(res_path)
AI 代码解读

3.1.2 新建Workbook和Sheet

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

except:
    workbook = xlwt.Workbook()
    sheet = workbook.add_sheet('new')
    col = 0
AI 代码解读

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)
AI 代码解读

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
    )
)
AI 代码解读

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

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

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

完整代码
try:

exl = pandas.read_excel(aim_path)
AI 代码解读

except:

print('找不到文件!请检查一下文件路径或文件是否存在')
os._exit(0)
AI 代码解读

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('写入失败')
AI 代码解读
目录
打赏
0
0
0
0
178
分享
相关文章
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
551 10
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
23天前
|
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
32 4
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序
### 农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序 该程序通过`lunardate`库实现公历与农历的日期转换,支持闰月和跨年处理,用户输入农历节日名称后,可准确计算距离该节日还有多少天。功能包括农历节日查询、倒计时计算等。欢迎使用! (239字符)
295 86
在Python程序中实现LevelDB的海量key的分批次扫描
通过本文的步骤,您可以在Python程序中实现对LevelDB海量key的分批次扫描。这样不仅能够有效地管理大规模数据,还可以避免一次性加载过多数据到内存中,提高程序的性能和稳定性。希望这篇指南能为您的开发工作提供实用的帮助。
94 28
这份Excel+Python飞速搞定数据分析手册,简直可以让Excel飞起来
本书介绍了如何将Python与Excel结合使用,以提升数据分析和处理效率。内容涵盖Python入门、pandas库的使用、通过Python包操作Excel文件以及使用xlwings对Excel进行编程。书中详细讲解了Anaconda、Visual Studio Code和Jupyter笔记本等开发工具,并探讨了NumPy、DataFrame和Series等数据结构的应用。此外,还介绍了多个Python包(如OpenPyXL、XlsxWriter等)用于在无需安装Excel的情况下读写Excel文件,帮助用户实现自动化任务和数据处理。
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
Python程序的安全逆向(关于我的OPENAI的APIkey是如何被盗的)
本文介绍了如何使用C语言编写一个简单的文件加解密程序,并讨论了如何为编译后的软件添加图标。此外,文章还探讨了Python的.pyc、.pyd等文件的原理,以及如何生成和使用.pyd文件来增强代码的安全性。通过视频和教程,作者详细讲解了生成.pyd文件的过程,并分享了逆向分析.pyd文件的方法。最后,文章提到可以通过定制Python解释器来进一步保护源代码。
112 6
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等