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

পাইথনে openpyxl ব্যবহার করে এক্সেল ফাইল পড়া ও লিখা


openpyxl কী?

openpyxl হলো পাইথন লাইব্রেরি এক্সেল ২০১০+ (.xlsx, .xlsm, .xltx, .xltm) ফাইল পড়া, লিখা, মডিফাই করার জন্য।

স্থাপন

pip install openpyxl

নতুন ওয়ার্কবুক তৈরি ও শিট টাইটেল


import openpyxl

wb = openpyxl.Workbook()
ws = wb.active
print(ws.title)  # 'Sheet'

# টাইটেল পরিবর্তন
ws.title = "My New Sheet"
print(ws.title)  # 'My New Sheet'

সেলে ডেটা লিখা


wb = openpyxl.Workbook()
ws = wb.active

# মেথড ১: cell()
c1 = ws.cell(row=1, column=1, value="Aadrika")
c2 = ws.cell(row=1, column=2, value="Adwaita")

# মেথড ২: Координа্ট স্ট্রিং
ws['A2'] = "Satyajit"
ws['B2'] = "Bivas"

# সেভ
wb.save("Book1.xlsx")

নতুন শিট যোগ করা


wb = openpyxl.Workbook()
wb.create_sheet(index=1, title="New Sheet")
wb.save("Book1.xlsx")

এক্সেল ফাইল পড়া


import openpyxl

wb = openpyxl.load_workbook("Book1.xlsx")
ws = wb.active

# ম্যাক্স রো/কলাম
print("Max row:", ws.max_row)      # 2
print("Max col:", ws.max_column)   # 2

# নির্দিষ্ট সেল
print(ws.cell(row=1, column=1).value)  # Aadrika
print(ws['A1'].value)                  # Aadrika

# সব কলাম হেডার
for col in range(1, ws.max_column + 1):
    print(ws.cell(row=1, column=col).value, end=" ")
# Aadrika Adwaita

# প্রথম কলামের সব ভ্যালু
for row in range(1, ws.max_row + 1):
    print(ws.cell(row=row, column=1).value)
# Aadrika
# Satyajit

# নির্দিষ্ট রো (২য় রো)
for col in range(1, ws.max_column + 1):
    print(ws.cell(row=2, column=col).value, end=" ")
# Satyajit Bivas

ইটারেটর ব্যবহার (বড় ফাইলের জন্য দক্ষ)


# সারি ভালো করে ইটারেট
for row in ws.iter_rows(min_row=1, max_row=ws.max_row, values_only=True):
    print(row)
# ('Aadrika', 'Adwaita')
# ('Satyajit', 'Bivas')

# কলাম ভালো করে ইটারেট
for col in ws.iter_cols(min_col=1, max_col=ws.max_column, values_only=True):
    print(col)

স্টাইলিং (ফন্ট, রঙ, বর্ডার, অ্যালাইনমেন্ট)


from openpyxl.styles import Font, PatternFill, Alignment, Border, Side

ws['A1'].font = Font(bold=True, size=14, color="FF0000")
ws['A1'].fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
ws['A1'].alignment = Alignment(horizontal="center", vertical="center")
thin_border = Border(
    left=Side(style='thin'),
    right=Side(style='thin'),
    top=Side(style='thin'),
    bottom=Side(style='thin')
)
ws['A1'].border = thin_border

ফর্মুলা লিখা


ws['A1'] = 10
ws['B1'] = 20
ws['C1'] = '=A1+B1'  # ফর্মুলা স্ট্রিং হিসেবে
wb.save("formula.xlsx")

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

  1. পাইথনে PDF ফাইল এক্সেল ফাইলে কনভার্ট করা

  2. পাইথনে openpyxl মডিউল দিয়ে এক্সেল ফাইল পড়া ও লেখা

  3. পাইথনে xlsxwriter মডিউল ব্যবহার করে এক্সেল ফাইল তৈরি ও লেখা

  4. পাইথনে openpyxl ব্যবহার করে এক্সেল ফাইলে গাণিতিক অপারেশন

কপিরাইট © https://bd.wsxdn.com সমস্ত অধিকার সংরক্ষিত
সমস্যাসমাধান
FileNotFoundErrorপথ চেক করুন, raw string (r"path") বা ডবল ব্যাকস্ল্যাশ ব্যবহার করুন
PermissionErrorফাইল অন্য প্রোগ্রামে খোলা আছে কিনা চেক করুন
ডেটা টাইপ মিসম্যাচopenpyxl স্ট্রিং/নাম্বার অটো হ্যান্ডেল করে; ডেটের জন্য datetime অবজেক্ট দিন
বড় ফাইল ধীরread_only=True, write_only=True মোড ব্যবহার করুন