开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費電子書等14項超值服

          開通VIP
          Python批量合并365個工作表的2種方法

          一、引言

          小明剛進入到新公司,就被委以重任:將365個Excel文件中的英文表頭修改為中文,然后合并成一個文件。傳統(tǒng)方法是逐一打開每個文件,手動修改標(biāo)題,然后保存,最后再合并。這種方法不僅耗時耗力,還容易出錯。如果用Python就可以實現(xiàn)批量修改表頭,并快速合并,就可以大大地提速,這樣原本可能需要2天的工作量,可能只需要1分鐘就完成了。那么用Python又是如何實現(xiàn)的呢?

          二、實現(xiàn)代碼

          1. 使用pandas來合并

          如果使用Python中的pandas的話,根據(jù)他的需求可以分為3步:

          第一步:讀取所有xlsx文件,這時我們使用的是os模塊,利用os模塊批量獲取xlsx格式文件,由于有時還會有~.xlsx這種文件,干擾python讀取文件,所以要排除一下。

          第二步:利用pandas模塊建立一個DataFrame,設(shè)定好表頭columns,后面合并xlsx時就不用讀取第一行表頭,直接進行合并了。

          第三步:利用for循環(huán),拼接路徑地址,逐個讀取xlsx文件,修改表頭后,再利用pandas中的concat來合并xlsx文件,合完成后輸出保存。

          通過以上三步,就可以將 365 個xlsx文件合并成一個,合并后的excel表頭按要求的中文來。只需編寫10多行代碼,他就可以在 2秒內(nèi)完成這項工作,而不是花費24小時。

          import osimport pandas as pdimport time t1 = time.time() #定義時間# 定義文件夾路徑folder_path = './files/' # 獲取文件夾中所有Excel文件的文件名file_list = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') and not f.startswith('~')] # 初始化一個空的DataFrame,用于存放合并后的數(shù)據(jù)combined_df = pd.DataFrame(columns=['標(biāo)題', '日期', '檢查結(jié)果', '核檢員']) # 遍歷所有Excel文件,并將它們合并到一個DataFrame中for file_name in file_list: file_path = os.path.join(folder_path, file_name) df = pd.read_excel(file_path) # 將列名改為所需的表頭 df.columns = ['標(biāo)題', '日期', '檢查結(jié)果', '核檢員'] # 將當(dāng)前文件的內(nèi)容追加到合并的DataFrame中 combined_df = pd.concat([combined_df, df], ignore_index=True) # 保存合并后的數(shù)據(jù)到一個新的Excel文件output_file = 'combined_quality_report.xlsx'combined_df.to_excel(output_file, index=False) print(f'所有文件已成功合并,并保存為 {output_file},\n耗時:{round(time.time()-t1, 1)}秒')

          2.使用openpyxl來合并

          由于pandas在打包時不太方便,因此為了跨平臺操作,我們可以把它改為openpyxl,當(dāng)然我們可以不用手工去改,只把上面這些代碼放到ChatGPT中,給出指令就可以了。

          在使用openpyxl時,我們修改代碼的邏輯,直接從第二行來讀取,簡化讀取步驟,而不用更新讀取excel的表頭了,這樣可以保證其生成的速度還可以提高不少。步驟如下:

          第一步,使用 openpyxl 創(chuàng)建一個新的工作簿。

          第二步,讀取每個文件的內(nèi)容并跳過表頭,只合并數(shù)據(jù)行。

          第三步,最后將合并的數(shù)據(jù)保存到一個新的Excel文件中。

          實現(xiàn)的代碼如下:

          import osimport timefrom openpyxl import Workbook,load_workbook # 定義時間t1 = time.time() # 定義文件夾路徑folder_path = './files/' # 獲取文件夾中所有Excel文件的文件名file_list = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') and not f.startswith('~')] # 創(chuàng)建一個新的工作簿和活動工作表combined_wb = Workbook()combined_ws = combined_wb.active # 添加表頭headers = ['標(biāo)題', '日期', '檢查結(jié)果', '核檢員']combined_ws.append(headers) # 遍歷所有Excel文件,并將它們合并到新的工作表中for file_name in file_list:    file_path = os.path.join(folder_path, file_name)    wb = load_workbook(file_path)    ws = wb.active        # 跳過表頭,從第二行開始讀取數(shù)據(jù)    for row in ws.iter_rows(min_row=2, values_only=True):        combined_ws.append(row)  # 將每一行數(shù)據(jù)添加到合并的工作表中 # 保存合并后的數(shù)據(jù)到一個新的Excel文件output_file = 'combined_quality_report.xlsx'combined_wb.save(output_file) print(f'所有文件已成功合并,并保存為 {output_file},\n耗時:{round(time.time() - t1, 1)}秒')

          三、學(xué)后總結(jié)

          在數(shù)字化辦公時代,掌握編程和自動化技能對提升工作效率至關(guān)重要。Python作為一種易學(xué)且功能強大的編程語言,在處理重復(fù)性工作時展現(xiàn)出巨大潛力。如果你也想擺脫繁重的重復(fù)勞動,不妨嘗試學(xué)習(xí)Python編程,讓你的辦公效率直線上升。


          好啦今兒分享到這里,祝大家好運!
          喜歡的同鞋請轉(zhuǎn)發(fā)、點贊!
          本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          盤點一個Python自動化辦公Excel數(shù)據(jù)處理的需求
          代碼分享 python批量處理excel文件
          Python也可以實現(xiàn)Excel中的“Vlookup”函數(shù)?
          10個Python Excel自動化腳本
          Python 中的正反斜杠用法詳解
          Python|讀、寫Excel文件(三種模塊三種方式)
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
          綁定賬號成功
          后續(xù)可登錄賬號暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點擊這里聯(lián)系客服!

          聯(lián)系客服