python tkinter実装フォルダの下のexcelテーブルの要約

2846 ワード

仕事の必要に応じて.python実装のフォルダの下にあるすべてのexcelテーブルをまとめるツールを書いて、ソースコードを公開して、後で参考にしたいと思っています.
import xlrd
import os
import xlwt
from xlutils.copy import copy
from tkinter import *

file_dir = 'C:\\Users\\admin\\Desktop\\excel'

def get_allfile_msg(file_dir):
    for root, dirs, files in os.walk(file_dir):
        return root, dirs, files

root, dirs, files = get_allfile_msg(file_dir)
def get_allfile_url(root, files):
    i = 0       #    
    allFile_url = []
    for f in files:
        i += 1
        if i == len(files):
            break
        file_url = root + '\\' + f
        allFile_url.append(file_url)
    return allFile_url

allFile_url = get_allfile_url(root, files)

def all_to_one(root, allFile_url, file_name='allExcel.xls', title=None):
    file_name = root + '\\' + file_name
    create_excel(file_name, title)

    list_row_data = []
    for f in allFile_url:
        e1.insert(END,'  %s' % f,'
','
') excel = xlrd.open_workbook(f) table = excel.sheet_by_index(0) e1.insert(END,' :%d, :%d' % (table.nrows,table.ncols),'
','
') for i in range(table.nrows): if i == 0: i += 1 continue row = table.row_values(i) list_row_data.append(row) e1.insert(END,' %d' % len(list_row_data),'
','
') add_row(list_row_data, file_name) def create_excel(file_name, title): e1.insert(END,' %s' % file_name,'
','
') a = xlwt.Workbook() table = a.add_sheet('sheet1', cell_overwrite_ok=True) for i in range(len(title)): table.write(0, i, title[i]) a.save(file_name) file_name = 'DO .xls' title = [' ',' '] def add_row(list_row_data, file_name): allExcel1 = xlrd.open_workbook(file_name) sheet = allExcel1.sheet_by_index(0) allExcel2 = copy(allExcel1) sheet2 = allExcel2.get_sheet(0) i = 0 for row_data in list_row_data: for j in range(len(row_data)): sheet2.write(sheet.nrows + i, j, row_data[j]) i += 1 # allExcel2.save(file_name) e1.insert(END,' ','
','
') win = Tk() win.title('Excel ') btu = Button(win,text = ' ',command = lambda :all_to_one(root, allFile_url, file_name=file_name, title=title)).grid(row=2, column=0,pady=5) e1 = Text(win,width=50,height=25,bg = 'green') e1.grid(row=1, column=0,pady=5) win.resizable(0, 0) # Python GUI win.mainloop() e1.insert(END,' :',root,' ',dirs,' ',files)

参照先:https://blog.csdn.net/imagine_dragon/article/details/78025144