Python对Excel以某列进行拆分成小文件(与ChatGPT合作)

我们在办公中经常需要以Excel中的某一列进行文件拆分(拆分出小文件),今天就与ChatGPT合作了一把,共同完成了这个GUI办公拆分Excel小工具

先看需求图片:

在这里插入图片描述

这个需求已经完美解决啦,先看一下视频,是不是你想要的效果:

请添加图片描述

ChatGPT给的代码始终多多少少有点问题,就会一个劲的说:“非常抱歉”。。。最后我修改了其中的拆分函数,其中主要的界面还是用其代码

如果表头的很长不用担心,选择列是可以滚动的,如下

在这里插入图片描述

该工具使用到的库

库名安装
tkinterpip install tkinter
pandaspip install pandas
openpyxlpip install openpyxl

完整版代码:

import openpyxl
import pandas as pd
import tkinter as tk
from tkinter.filedialog import askopenfilename
from tkinter import messageboxclass SplitterGUI:def __init__(self, master):self.master = mastermaster.title("Excel拆分小工具")#标签、文本框和按钮组件self.label1 = tk.Label(master, text="文件路径:")self.label1.grid(row=0, column=0)self.filepath_entry = tk.Entry(master, width=50)self.filepath_entry.grid(row=0, column=1, columnspan=2)self.browse_button = tk.Button(master, text="浏览", command=self.browse_files)self.browse_button.grid(row=0, column=3)self.label2 = tk.Label(master, text="表头名称:")self.label2.grid(row=1, column=0)self.cols_listbox = tk.Listbox(master, selectmode=tk.MULTIPLE, height=5, exportselection=False)self.cols_listbox.grid(row=2, column=0, rowspan=4)self.scrollbar = tk.Scrollbar(master, orient=tk.VERTICAL)self.scrollbar.grid(row=2, column=1, rowspan=4, sticky=tk.NS)self.cols_listbox.config(yscrollcommand=self.scrollbar.set)self.scrollbar.config(command=self.cols_listbox.yview)self.split_button = tk.Button(master, text="开始拆分", command=self.split_files)self.split_button.grid(row=6, column=3)def browse_files(self):global filepath,colnamesfilepath = askopenfilename()self.filepath_entry.delete(0, tk.END)self.filepath_entry.insert(0, filepath)# 读取Excel文件中的列名df = pd.read_excel(filepath)colnames = list(df.columns)for col in colnames:self.cols_listbox.insert(tk.END, col)def split_files(self):selected_indices = self.cols_listbox.curselection()# print(filepath,colnames)df = pd.read_excel(filepath,usecols=[colnames[selected_indices[0]]],dtype=str,keep_default_na='')cf_list = []for d in df.values.tolist():if d[0] not in cf_list:cf_list.append(d[0])# print(d)# print(cf_list)df_1 = pd.read_excel(filepath, dtype=str, keep_default_na='')a = df_1.groupby(colnames[selected_indices[0]])for i in cf_list:wb = openpyxl.Workbook()ws = wb.activews.append(colnames)data = a.get_group(str(i)).values.tolist()for k in data:print(k)ws.append(k)wb.save(f"./{i}.xlsx")print("-"*30)messagebox.showinfo("成功", "拆分完成!请查看生成的文件。")# 创建主窗口并运行应用
root = tk.Tk()
app = SplitterGUI(root)
root.mainloop()

友情提示,该功能目前只能选择单一的列进行拆分!

PS .该工具非常适合打包EXE,发给你心爱的同事们使用,

打包教程1:纯净版打包:点我学习

打包教程2:现有环境打包:点我学习

希望对大家有帮助,如有错误,欢迎指正

致力于办公自动化的小小程序员一枚

希望能得到大家的【一个免费关注】!感谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16485.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文包揽:大模型、AI大模型、GPT模型

目录 一、大模型 1.1大模型是什么? 1.2为什么模型越大也好 二、AI大模型 2.1 AI大模型到底是什么? 2.2 AI大模型的优势 2.2.1 上下文理解能力 2.2.2 语言生成能力 2.2.3 学习能力强 2.2.4 可迁移性高 2.3国内哪些公司有大模型 三、GPT模型 …

自然语言处理复习

好了,我考完了,我花了40min走出考场,不是因为都会,而是因为不会的是一点不会哇 更正一下,gpt那里考的相当变态,考了few shot learning,填空题就更变态了(谁去给老师说让他把难度调高点的&#…

GPT系列简介与gpt训练(nanoGPT)

generateivelt pre-trained transformer ,GPT使用transformer做特征提取行,单项语言模型作为训练任务 gpt 1.0 通过自左向右生成式的构建预训练任务,然后得到一个通用的预训练模型,这个模型和BERT一样都可用来做下游任务的微调。GPT-1当时在…

《花雕学AI》08:你也能玩转ChatGPT—需要应用与拓展的49种场景

ChatGPT的基本原理和功能: 1、ChatGPT是一个基于GPT-3或者GPT-4模型的人工智能聊天机器人,它能够理解和生成自然的文本回答。 2、GPT-4是一个由OpenAI开发的大型语言模型,它能够从互联网上的海量文本数据中学习语言规律和知识。 3、ChatGP…

【人工智能】LLM 大型语言模型发展历史

【人工智能】LLM 大型语言模型发展历史 文章目录 【人工智能】LLM 大型语言模型发展历史前言一、发展历史通过编写一系列的规则尝试使用神经网络模型深度学习: 基于递归神经网络GPT.x —— 基于Transformer 模型二、技术原理编码器和解码器自注意力机制最大似然估计什么是“所有…

A股全市场股票历史行情1分钟高频数据

A股全市场股票历史行情1分钟高频数据 百度共享网盘 链接: https://pan.baidu.com/s/1Ki9lBRNrv1_5ufgmNdrlVQ 提取码: fxb4 20210年 -2021年分批按年压缩,2022年之后按月压缩。 最早1分钟数据开始于2021年: 2021年1分钟数据分5个压缩包: …

签名支持全球管控AI 三巨头侧漏“求生欲”

又一封“群星云集”警示AI风险的公开信来了,这封信的内容简短但措辞炸裂:减轻 AI 带来的灭绝风险,应该与管控流行病和核战争等其他社会级规模的风险一样,成为一项全球优先事项。 5月30日,这纸原文只有22个单词的声明&…

成都链安安全月报|6月区块链生态安全事件损失超9766.4 万美元

6月,各类安全事件造成的损失金额较5月大幅度上升。6月发生较典型安全事件超24起,各类安全事件造成的损失总金额约9766.4 万美元,较5月上涨约54.3%。本月最大的安全事件来自于Atomic Wallet钱包被盗事件,损失约6700万美元。第二大安…

LangChain学习:chains

文章目录 1. LLMChain2. SimpleSequentialChain3. SequentialChain4. LLMRouterChain learn from https://learn.deeplearning.ai/langchain 1. LLMChain from config import api_type, api_key, api_base, api_version, model_name from langchain.chat_models import Azure…

百度CTO王海峰做客《中国经济大讲堂》:文心一言,读书破万亿

当下,大语言模型热度空前,诸如文心一言、ChatGPT 等已经能够与人对话互动、回答问题、协助创作,逐渐应用于人们的工作和生活,也引发了社会热议。近日,百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰再…

「文心一言」内测详细使用体验

★观前提示:以下内容仅为内测测试内容,不代表未来正式版如何,或许你认为它与chatgpt仍有不小的差距,或许你认为它目前做的已经不错了,都可以,但是咱们测试体验,只讲述体验,本篇文章不…

mysql数据库介绍

💜今天对mysql的一些基础概念进行讲诶横扫,如概念、特点、优势、发展历史等等。对之前内容感兴趣的同学可以参考👇: 链接: mysql学习之数据系统概述 🎾让我们开始今日份的学习吧! 目录 1. mysql的基本概…

【C++】第 3 课 - do-while 循环应用案例 - 水仙花数

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、案例描述 3、示例代码 4、总结 1、缘起 以前在学习 C 语言 的时候,就做过水仙花数的练习题。在…

USB设备驱动学习记录

IN/OUT: 0:EHCI主控架构 1.关于设备地址SET_ADDRESS设置的逻辑: 可以看到set_address命令最终通过USB_DRV_WriteReg8(&musb->faddr, g_udc.address);将g_udc.address设置给了硬件,而此地址来源于主机 打印输出: 可以看到主机通过EP0…

【通义千问】继ChatGPT爆火后,阿里云的大模型“通义千问”它终于来了

通义千问 一、通义千问名字的由来二、通义千问和ChatGPT有什么区别呢?三、如何申请体验通义千问呢?四、未来通义千问能称为中国版的ChatGPT吗?五、通义千问什么时候正式发布呢? 一、通义千问名字的由来 通义千问顾名思义&#xf…

她琴棋书画全能,还进入清华计算机系实验室,被赞智商太超群、能力过强悍...

金磊 杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 最特殊,没有之一。 她叫华智冰,没有参加过任何升学考试,没有拿过任何竞赛名次。 却被清华大学计算机科学与技术系知识工程实验室,“破格录取”。 而且就这么一位学生&#xff…

提示工程师:如何写好Prompt

提示工程由来 提示工程是一门相对较新的学科,用于开发和优化提示以有效地将语言模型 (LM) 用于各种应用程序和研究主题。 研究人员使用提示工程来提高 LLM 在广泛的常见和复杂任务(例如问题回答和算术推理)上的能力。 开发人员使用提示工程…

chatgpt赋能python:Python中文译名的由来及其重要性

Python中文译名的由来及其重要性 Python,是一种高级、通用性、直译式、编译式、面向对象的动态程序设计语言。Python 语言设计的哲学是“优雅”、“明确”、“简单”,所以很多人将其称为“优美的语言”。 然而,Python这个名字在中文地区的译…

chatgpt赋能python:Python名字的由来

Python名字的由来 Python是一门高级编程语言,它的名字来源于一个非常有趣的故事。接下来的文章将介绍如何命名Python,并且揭示这个名字的真正含义。 Guido van Rossum设计Python Python是由Guido van Rossum设计的。在1989年,Guido在荷兰国…