首页 > 编程语言 >利用Python制作本地Excel的查询与生成的程序

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

时间:2022-12-30 10:05:07浏览次数:40  
标签:Python res exl excel Excel 查询 path pandas


目录

​​前言​​

​​需求​​

​​实验步骤​​

​​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)
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的查询与生成的程序_异常捕获

我是毕加锁 (锁!)

标签:Python,res,exl,excel,Excel,查询,path,pandas
From: https://blog.51cto.com/u_15687734/5979102

相关文章

  • 锦囊秘籍!用Python操作MySQL的使用教程集锦!
    一.python操作数据库介绍大家好,我是毕加锁(锁!)。Python标准数据库接口为PythonDB-API,PythonDB-API为开发人员提供了数据库应用编程接口。Python数据库接口支持非常多的......
  • Python实现房产数据分析与可视化 数据分析 实战
    Python库的选择话说,工欲善其事,必先利其器,虽然我们已经选择Python来完成剩余的工作,但是我们需要考虑具体选择使用Pytho的哪些利器来帮助我们更快更好地完成剩余的工作。我们......
  • 11个案例讲透 Python 函数参数
    今天给大家分享一下自己整理的一篇Python参数的内容,内容非常的干,全文通过案例的形式来理解知识点,自认为比网上80%的文章讲的都要明白,如果你是入门不久的python新手,相......
  • 运用Python分析公募基金【量化投资】
    运用Python分析公募基金1、背景学校财富管理课程的期末论文是分析中国各种投资标的的收益,笔者分配到的研究的细分类别为:通过大集合转公募基金的方式,成立的公募基金的收益分......
  • Python处理Excel比Vba快100倍,媳妇连连夸赞今晚不用再跪搓衣板----python实战
    最近经历了一次把vb脚本改造成python脚本,并获得性能提升数倍的过程,当然,这个过程也不是一帆风顺,中间也经历了一些波折,但是,也收获了一波新的认知。正好最近有时间,姑且写下来记......
  • Python办公自动化|批量生成请假条
    大家好,我是毕加锁本文就将基于一个真实的办公案例进行讲解如何提取Excel内容并创建Word,主要将涉及以下三个知识点​​openpyxl​​ 读取Excel文件​​python-docx​​ ......
  • 利用Python制作第一人称射击小游戏 含源代码
    大家好我是毕加锁(锁!)今天教大家利用Python制作第一人称小游戏 涉及知识点1.sprites2.pygame混音器3.图章  4.python基础语法.代码1发射声fromspritesimport*......
  • Python天气播报系统
    工具​python3.7pycharmpyttsx3:语音播报库天气数据来源​找寻一个天气网站比如说我们要查询某地的天气,在输入地名后就能看到结果。我们可以看到网站的url会有变化:每......
  • 用Python实现BP神经网络(附代码)
    用Python实现BP神经网络(附代码)毕加锁(锁!)今天教大家用Python实现BP神经网络(附代码)用Python实现出来的机器学习算法都是什么样子呢?前两期线性回归及逻辑回归项目已发布(见文......
  • Python八个自动化办公的技巧
    Python八个自动化办公的技巧大家好我是毕加锁(锁!)这篇文章主要介绍了几个Python自动化办公的技巧,可以大大提高工作效率,例如:Word文档doc转docx、Excel文件批量合并、Word......