Excel分表小软件代码|python

本教程介绍如何使用Python的pandas库和tkinter GUI界面实现Excel数据的分表和分段处理。分表功能将表格按第一列的不同值分别保存到不同的sheet中,适用于如分省等需求。分段功能则将数据按指定数量分割成多个部分,适用于处理大量数据时的分批操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-
"""
Created on Tue Oct 29 09:27:32 2019

@author: weiping --tkinter
"""

import tkinter as tk
import pandas as pd 


root = tk.Tk()
root.title('分表')
root.geometry('500x500')
var1 = tk.IntVar()
var2 = tk.StringVar()
var3 = tk.StringVar()
e1 = tk.Entry(root,textvariable = var1,width = 250)
var1.set('请输入分表的各表条数')
e1.pack()
e2 = tk.Entry(root,textvariable = var2,width = 250)
var2.set("请输入excel的绝对路径(不包含后缀)")
e2.pack()
e3 = tk.Entry(root,textvariable = var3,width = 250)
var3.set("请输入csv的绝对路径(不包含后缀)")
e3.pack()
def fenbiao():
    wenjian = e2.get() #获取文本框内容
    df = pd.read_excel(wenjian + '.xlsx')
    df = df.fillna('')
    col = list(set(df.iloc[:,0]))
    addr = pd.ExcelWriter(wenjian +'new.xlsx')
    
    for i in col:
        dt = df[df.iloc[:,0] == i]
        dt.to_excel(addr, sheet_name = str(i), index=False)
    addr.save()
    addr.close()   
    tk.Label(root,text="分表结束").pack()

def fenduan():
    wenjian = e2.get() #获取文本框内容
    df = pd.read_excel(wenjian + '.xlsx')
    df = df.fillna('')
    tt = int(e1.get())
    long = df.shape[0]
    t_max = int(long/tt) + 1
    for i in range(1,t_max+1):
        j = df.iloc[(i-1)*tt:i*tt,:]
        addr = pd.ExcelWriter(wenjian +str(i) + '.xlsx')
        j.to_excel(addr,  index=False)
        addr.save()
        addr.close()
    tk.Label(root,text = "分段结束").pack()
def fenduan_csv():
    wenjian = e3.get() #获取文本框内容
    df = pd.read_csv(wenjian + '.csv')
    df = df.fillna('')
    tt = int(e1.get())
    long = df.shape[0]
    t_max = int(long/tt) + 1
    for i in range(1,t_max+1):
        j = df.iloc[(i-1)*tt:i*tt,:]
        addr = pd.ExcelWriter(wenjian +str(i) + '.xlsx')
        j.to_excel(addr,  index=False)
        addr.save()
        addr.close()
    tk.Label(root,text = "分段结束").pack()

tk.Button(root,text="分表",command=fenbiao).pack()
tk.Button(root,text = '分段',command = fenduan).pack()
tk.Button(root,text = '分段csv',command = fenduan_csv).pack()
tk.Label(root,text = "注释:\n分表是指,对表格第一列数据每个选项生产一个sheet,例如分省;\n分段是指,对大量数据进行数据量分割,例如一个10万的数据分成10个1万的表").pack()
root.mainloop()







效果图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值