python tkinter実装フォルダの下のexcelテーブルの要約
2846 ワード
仕事の必要に応じて.python実装のフォルダの下にあるすべてのexcelテーブルをまとめるツールを書いて、ソースコードを公開して、後で参考にしたいと思っています.
参照先:https://blog.csdn.net/imagine_dragon/article/details/78025144
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