কম্পিউটার টিউটোরিয়াল

পাইথন: ফোল্ডারের সব এক্সেল ফাইল একসাথে মার্জ করা

এক ফোল্ডারের ভেতরের সব এক্সেল ফাইল (.xlsx) একসাথে মার্জ করার জন্য glob মডিউল এবং প্যান্ডাসের concat() / append() ব্যবহার করা হয়। দ্রষ্টব্য: প্যান্ডাস ২.০+ এ append() ডিপ্রিকেটেড, concat() ব্যবহার করুন।

প্রয়োজনীয় প্যাকেজ


pip install pandas openpyxl xlrd

সম্পূর্ণ কোড


import pandas as pd
import glob
import os

# ফোল্ডার পাথ (আপনার পাথ অনুযায়ী পরিবর্তন করুন)
folder_path = r"C:\Users\YourName\Desktop\ExcelFiles"  # r"..." রো স্ট্রিং

# সব .xlsx ফাইল খুঁজে বের করা
files = glob.glob(os.path.join(folder_path, "*.xlsx"))
print("খুঁজে পাওয়া ফাইলগুলো:", files)

# খালি লিস্টে ডেটাফ্রেম সংগ্রহ
dataframes = []

for file in files:
    try:
        # সব শিট পড়া (sheet_name=None)
        sheets = pd.read_excel(file, sheet_name=None)
        # সব শিট একসাথে concat
        df = pd.concat(sheets.values(), ignore_index=True)
        dataframes.append(df)
        print(f"প্রক্রিয়া করা হয়েছে: {os.path.basename(file)} ({len(df)} সারি)")
    except Exception as e:
        print(f"এরর {file}: {e}")

# সব ডেটাফ্রেম একসাথে concat
if dataframes:
    merged = pd.concat(dataframes, ignore_index=True)
    
    # আউটপুট ফাইল
    output_path = os.path.join(folder_path, "Merged_Output.xlsx")
    merged.to_excel(output_path, index=False)
    print(f"\nমার্জ সম্পূর্ণ! টোটাল সারি: {len(merged)}")
    print(f"সংরক্ষিত: {output_path}")
else:
    print("কোনো ফাইল প্রক্রিয়া করা হয়নি।")

মূল পয়েন্টসমূহ

  • glob.glob(pattern) — ফাইল প্যাটার্ন ম্যাচ করে ফাইল লিস্ট ফেরত দেয়
  • sheet_name=None — এক্সেল ফাইলের সব শিট পড়ে (ডিকশনারি রিটার্ন করে)
  • pd.concat(sheets.values()) — সব শিট একসাথে জোড়া দেয়
  • ignore_index=True — নতুন সিকোয়েন্সিয়াল ইনডেক্স বানায়
  • pd.concat(dataframes) — সব ফাইলের ডেটা একসাথে মার্জ করে

বড় ফাইল হ্যান্ডলিং (Chunking)


# মেমরি সাশ্রয়ের জন্য chunk এ প্রক্রিয়া
chunk_size = 10000
chunks = []

for file in files:
    for chunk in pd.read_excel(file, chunksize=chunk_size):
        chunks.append(chunk)

merged = pd.concat(chunks, ignore_index=True)

সাধারণ সমস্যা ও সমাধান

সমস্যাসমাধান
কলাম মিসম্যাচpd.concat(..., sort=False) বা مسبক কলাম সেট করে
ডেটা টাইপ ভিন্নdtype প্যারামিটার বা astype() পরে
বড় ফাইল, মেমরি এররchunking বা Dask/Modin ব্যবহার
  1. পাইথনে PDF ফাইল এক্সেল ফাইলে কনভার্ট করা

  2. পাইথনে PDF ফাইল ক্র্যাক (পাসওয়ার্ড খোলা) করা

  3. কলাম অনুযায়ী এক্সেল ফাইল মার্জ: ৩টি প্রমাণিত পদ্ধতি

  4. এক্সেলে CSV ফাইল মার্জ করুন: সুস্পষ্ট ডেটা ইন্টিগ্রেশনের জন্য ২টি সহজ পদ্ধতি