今天接到头疼的表格数据处理的任务,枯燥而乏味。想想用python能不能解决。不是在为python打广告呦,确实在处理Excel数据这块真的提高工作效率。
对原Excel数据有A的标志替换为A列的数据,为空数据过滤掉,列转为行。
目标数据格式为:
源码使用openpyxl进行Excel的操作,用到Python GUI编程(Tkinter)等。
import openpyxl
from openpyxl import load_workbook, Workbook
from tkinter import *
import tkinter.filedialog
import tkinter.messagebox
import time
root = Tk()
root.title("Excel数据处理")
fname = ''
root.geometry("500x300+100+200")
def xz():
global fname
filename = tkinter.filedialog.askopenfilename()
fname = filename
if filename != '':
lb.config(text = "您选择的文件是:"+filename);
else:
lb.config(text = "您没有选择任何文件");
def exportExcel():
if fname=='':
tkinter.messagebox.showerror("温馨提示", "请选择Excel文件!")
else:
wb=load_workbook(fname)
ws=wb.active
wbyxl=Workbook()
wsyxl=wbyxl.worksheets[0]
for rowIndex in range(1,ws.max_row+1):
dd = ws.cell(rowIndex, 1).value
if dd :
for columnIndex in range(1,ws.max_column+1):
cc=ws.cell(rowIndex, columnIndex).value
if cc=='A':
c1=ws.cell(1,columnIndex).value
c2=ws.cell(2,columnIndex).value
c3=ws.cell(rowIndex, 1).value
wsyxl.append([c1,c2,c3])
wb.close()
tempPath = fname[:fname.rfind('.')]
tempName= time.strftime("%Y%m%d%H%M%S", time.localtime())
path=tempPath+tempName+".xlsx"
wbyxl.save(path)
wbyxl.close()
tkinter.messagebox.showinfo("温馨提示", "处理完成!")
lb = Label(root,text = '')
lb.pack()
btn = Button(root,text="选择文件",command=xz)
btn.pack()
btn = Button(root,text="处理数据",command=exportExcel)
btn.pack()
root.mainloop()
运行:
搞定下班回家!!!!