openpyxl Doc :https://openpyxl.readthedocs.io/en/default/index.html
#! /usr/bin/python3.5
from tkinter import *
from tkinter import filedialog
from openpyxl import Workbook
from openpyxl import load_workbook
root= Tk()
root.title("Common window ")
def read1():
filename= filedialog.askopenfilename()
e1.delete(0, END)
e1.insert(0,filename)
def read2():
filename= filedialog.askopenfilename()
e2.delete(0, END)
e2.insert(0,filename)
def fun():
#text.delete(1.0,END) # clear text
text.insert(INSERT,"input1:"+e1.get()+"\n",'g')
text.insert(INSERT,"inout2:"+e2.get()+"\n",'g')
owb = Workbook() #输出wb
ows = owb.active #获取活动表
ows.title = "sheet" #命名表
try:
wb1 = load_workbook(e1.get()) #读入1
wb2 = load_workbook(e2.get()) #读入2
s_name1 = wb1.get_sheet_names() #得到输入表名数组
s_name2 = wb2.get_sheet_names() #得到输入表名数组
ws1 = wb1.get_sheet_by_name(s_name1[0]) #得到读入book1的第一张表
ws2 = wb2.get_sheet_by_name(s_name2[0]) #得到读入book2的第一张表
print ('book1_sheet1_name:%s'% s_name1[0])
print ('book2_sheet1_name:%s'% s_name2[0])
for i in range(1,9):
for j in range(1,8):
if not ws1.cell(row=i, column=j).value==None: #判断cell 是否为空
ows.cell(row=i, column=j).value = ws1.cell(row=i, column=j).value
else:
if not ws2.cell(row=i, column=j).value==None: #判断cell 是否为空
ows.cell(row=i, column=j).value = ws2.cell(row=i, column=j).value
owb.save('out.xlsx') #保存输出
text.insert(INSERT,"combine finish !\n")
except :
text.insert(INSERT,"Error: 找不到文件!\n",'red')
print("找不到文件!")
frame= Frame(root)
frame.pack(padx=40,pady=20) #set area
#label= Label(frame,text="file1:",font=("宋体",15),fg="blue").grid(row=0,column=0,padx=15,pady=5)
#label= Label(frame,text="file2:",font=("宋体",15),fg="blue").grid(row=1,column=0,padx=15,pady=5)
b1 = Button(frame,text="first table ",font=("宋体",15),command=read1).grid(row=0,column=0,padx=8)
b2 = Button(frame,text="second table ",font=("宋体",15),command=read2).grid(row=1,column=0,pady=8)
e1= Entry(frame,foreground = 'blue',font = ('Helvetica', '12'))
e2= Entry(frame,font = ('Helvetica', '12'))
e1.grid(row=0,column=1,ipadx=5)
e2.grid(row=1,column=1,ipadx=5)
e1.insert(0,"book1.xlsx")
e2.insert(0,"book2.xlsx")
butt_fun = Button(frame ,text=" 合并表格 ",font=("宋体",15),width=10,command= fun ).grid(row=2,column=0,padx=15,pady=5)
butt_exit = Button(frame ,text=" exit ",font=("宋体",15),width=10,command=root.quit).grid(row=2,column=1,padx=15,pady=5)
text = Text(frame,width=45,height=9,font =("微软雅黑",10))
text.tag_config('red', foreground='red')
text.tag_config('g', foreground='green')
text.grid(row=3,column=0,padx=35,pady=5,columnspan=2)
root.mainloop()