EXCEL表格多sheet嵌套填值及exe工具制作

from tkinter import filedialog
from xlutils.copy import copy
import xlrd
from tkinter import *


class MY_GUI():
    def __init__(self,init_window_name):
        self.init_window_name = init_window_name
    #设置窗口
    def set_init_window(self):
        self.init_window_name.title("SFSFG-1.0")           #窗口名
        self.init_window_name.geometry('256x128+10+10')
        self.init_data_label = Label(self.init_window_name, text="EXCEL点击👇")
        self.init_data_label.grid(row=1, column=1)
        self.wenjianfenci_button = Button(self.init_window_name, text="文件上传", bg="lightblue", width=20,command=self.sfsfg)  # 调用内部方法  加()为直接调用
        self.wenjianfenci_button.grid(row=3, column=5)


    #功能函数
    def sfsfg(self):
        filename = filedialog.askopenfilename()
        book = xlrd.open_workbook(filename)
        sheet1 = book.sheets()[0]
        sheet2 = book.sheets()[1]
        new_book = copy(book)
        new_booksheet = new_book.get_sheet(2)

        list = ['Material', 'Material Description', 'Base quantity', 'Alternative BOM', 'BOM Status', 'Component',
                'Component Description', 'Component Quantity', 'CHECK', '', 'Base quantity', 'Alternative BOM',
                'BOM Status', 'Component', 'Component Description', 'Component Quantity']
        for i in range(len(list)):
            new_booksheet.write(0, i, list[i])
        row_count, a, b = 1, 1, 1
        for index in range(sheet1.nrows):
            sh1_entire_row = sheet1.row_values(index)
            if index > 0:
                for item in range(sheet2.nrows):
                    if item > 0:
                        sh2_entire_row = sheet2.row_values(item)
                        if str(sh1_entire_row[5]) == str(sh2_entire_row[0]):
                            new_booksheet.write(row_count, 0, sheet1.row_values(index)[0])
                            new_booksheet.write(row_count, 1, sheet1.row_values(index)[1])
                            new_booksheet.write(row_count, 2, sheet1.row_values(index)[2])
                            new_booksheet.write(row_count, 3, sheet1.row_values(index)[3])
                            new_booksheet.write(row_count, 4, sheet1.row_values(index)[4])
                            new_booksheet.write(row_count, 5, sheet1.row_values(index)[5])
                            new_booksheet.write(row_count, 6, sheet1.row_values(index)[6])
                            new_booksheet.write(row_count, 7, sheet1.row_values(index)[7])
                            new_booksheet.write(row_count, 8, sheet1.row_values(index)[8])

                            new_booksheet.write(row_count, 10, sheet2.row_values(item)[2])
                            new_booksheet.write(row_count, 11, sheet2.row_values(item)[3])
                            new_booksheet.write(row_count, 12, sheet2.row_values(item)[4])
                            new_booksheet.write(row_count, 13, sheet2.row_values(item)[5])
                            new_booksheet.write(row_count, 14, sheet2.row_values(item)[6])
                            new_booksheet.write(row_count, 15, sheet2.row_values(item)[7])

                            row_count += 1
        new_book.save(r"FGSFG.xls")


def gui_start():
    init_window = Tk()              #实例化出一个父窗口
    ZMJ_PORTAL = MY_GUI(init_window)
    # 设置根窗口默认属性
    ZMJ_PORTAL.set_init_window()

    init_window.mainloop()          #父窗口进入事件循环,可以理解为保持窗口运行,否则界面不展示
gui_start()

文件目录下:pyinstaller -F -w filename.py 

制作完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值