python學習-windows下使用python27將合並多個xlsx文件
阿新 • • 發佈:2018-08-09
res mar def 主函數 忽略 單元格 .com 模塊 一個
有時候需要處理很多報表,將一個目錄下的所有excel格式報表合並,手工操作費事費力如果能使用python,將多個.xlsx同時能夠合並多個excel表的話,多麽方便。
1、windows上python配置
windows上安裝的是python2.7,需要使用pip安裝一些第三方包,所以需要配置一下。在linux上修改Pip源很簡單,但是在windows上很麻煩,所以我就直接單次指定pip源下載包
#windows上pip執行路徑為C:\Python27\Scripts pip install -U pip -i https://pypi.douban.com/simple/ #升級pip pip install -i openpyxl #處理excel表格
2.合並多個xlsx表格
編寫腳本,將E:\excel\目錄下所有xlsx文件合並
#!/env/python #coding=utf-8 ##合並多個excel表格## import os import glob import openpyxl def merge_xlsx_files(xlsx_files): #定義函數合並xlsx文件 wb = openpyxl.load_workbook(xlsx_files[0]) #調用openpyxl模塊loda_workbook函數 ws = wb.active #獲取活躍的Worksheet ws.title = "merged result" #定義工作表標題 for filename in xlsx_files[1:]: #循環xlsx_files參數,獲取第一個工作表(只有一個) workbook = openpyxl.load_workbook(filename) #調用函數 sheet = workbook.active #獲取活躍的表格 for row in sheet.iter_rows(min_row=2): #遍歷其他文件,忽略首行內容 values = [cell.value for cell in row] #循環獲取單元格的值 ws.append(values) #將值依次添加末尾 return wb #返回 def get_all_xlsx_files(path): #定義獲取所有xlsx文件 xlsx_files = glob.glob(os.path.join(path,'*.xlsx')) #采用glob方法指定路徑下所有.xlsx的文件 sorted(xlsx_files,key=str.lower) #按照關鍵字字符串小寫排序 return xlsx_files def main(): #定義主函數 xlsx_files = get_all_xlsx_files(os.path.expanduser ("E:\\excel\\")) #定義變量xlsx_files為get_all_xlsx_files函數,指定參數為指定目錄 wb = merge_xlsx_files(xlsx_files) #定義wb為merge_xlsx_files函數,指定參數為遍歷 wb.save('merged_form.xlsx') #save方法將匯總表保存到merged_form.xlsx if __name__ =='__main__': main()
完成合並後如下所示
python學習-windows下使用python27將合並多個xlsx文件