پکیج xlsxwriter

در این مجموعه پست‌ها قصد دارم نا نحوه استفاده از پکیج xlsxwriter برای خواندن و نوشتن در Excel با استفاده از زبان پایتون رو یاد بدم. همون‌طور که قطعا باهاش مواجه شدین بخشی از داده های سازمان ها داخل فایل های Excel قرار داره و بعضی از کارمندا راحت ترن تا از Excel برای کاراشون استفاده کنن. پس ما هم به عنوان یک تحلیلگر، دانشمند یا خصوصا مهندس داده باید بتونیم به خوبی با فایل های Excel تعامل کنیم.

پکیج xlsxwriter اصلا ایجاد شده تا ما از طریق اون بتونیم تقریبا هر کاری رو که توی Excel انجام میدیم با استفاده از پایتون انجام بدیم و نتیجه رو داخل یک فایل Excel تحویل بدیم. به عنوان مثال یک فایل Excel ایجاد کنیم. داخلش اطلاعات رو بنویسیم، فرمت دهی کنیم، چارت ایجاد کنیم یا حتی conditional formatting رو بکار بگیریم. تنها ایرادی که میشه به این پکیج گرفت اینه که نمیتونه مستقیما یک فایل از قبل ایجاد شده رو تغییر بده که طبیعی هم هست. شاید این یکم انتظار اضافی باشه ازش!

این پکیج از پایتون 2.7 به بعد و 3.4 به یعد پشتیبانی میکنه پس با خیال راحت ازش استفاده کنین.

نصب پکیج xlsxwriter

برای اینکار روش های زیادی وجود داره که حتما بیشترش رو بلدین ولی من بازم محض تکمیل مطلب ذکرشون میکنم

نصب با استفاده از conda یا pip

از اونجایی که این دستور داخل repository کوندا و pypi موجود هست پس میشه با استفاده از دستورات زیر به راحتی نصبش کرد. کافیه یک command prompt به صورت run as admin باز بکنین، یه اینترنت وصل باشین و اگر از anaconda استفاده میکنین دستور اول و در غیر این صورت دستور دوم رو اجرا بکنین

conda install xlsxwriter
pip install xlsxwriter

ایجاد یک فایل اکسل

به عنوان اولین قدم باید یک فایل اکسل ایجاد بکنیم. این کار رو میتوینم با استفاده از تابع Workbook از پکیج xlsxwriter انجام داد. دقت کنین که این تابع از ما یک مسیر کامل (مسیر به همراه اسم فایل و پسوند) یا فقط اسم و پسوند رو به عنوان ورودی میگیره. اگر مسیر بهش داده نشه این فایل رو توی مسیر پیش فرض ایجاد میکنه. من میخوام یک فایل xlsx به نام test ایجاد کنم. دقت کنین که من Workbook ایجاد شده رو توی یک متغییر (که اسمش رو هم برای فهم بهتر workbook گذاشتم) ذخیره کردم. بعدا باهاش کار داریم!

import xlsxwriter 
  
workbook = xlsxwriter.Workbook('test.xlsx') 

ایجاد یک شیت اکسل

خب! بعد از اینکه فایل اکسل ایجاد شد نوبت اینه که یک شیت توی این فایل اکسل ایجاد بشه. این کار رو میتونیم با استفاده از متد add_worksheet روی متغییر workbook که توی قسمت قبلی ساختم ایجاد بکنم. اگر به این متد به عنوان ورودی یک اسم بدیم، این اسم رو به عنوان اسم این شیت در نظر میگیره وگرنه یک شیت با اسم پیش فرض sheet1 ایجاد میکنه. من میخوام یک شیت با اسم new ایجاد بکنم. دقت بکنین که این شیت رو هم توی متغییر worksheet ذخیره کردم. بعدا با این هم کار داریم!

یک نکته: تا زمانی که متد close رو روی workbook استفاده نکنم تمام این اتفاقات صرفا دارن توی رم میوفتن. بعد از استفاده از این متده که این فایل واقعا برای من ایجاد میشه.

worksheet = workbook.add_worksheet('new') 

ثبت داده در شیت اکسل

بعد از اینک شیتم رو ساختم وقت اون رسیده که این شیت رو با داده هام پر کنم. من میخوام لقب خودم رو که The Data Scientist هست رو توی سه ستون اول از سطر اول بنویسم. فعلا میخوام اینکار رو با استفاده از آدرس سلول‌ها انجام بدم. برای اینکار کافیه از متد write روی متغییر worksheet استفاده کنم. این متد از من آدرس سلول و مقداری که میخوام داخل سلول نوشته بشه رو میگیره.

worksheet.write('A1', 'The') 
worksheet.write('B1', 'Data') 
worksheet.write('C1', 'Scientist') 

ذخیره سازی فایل ایجاد شده روی کامپیوتر

در نهایت برای اینکه این فایل روی هارد کامپیوترم و توی مسیر مشخص شده هم ذخیره بشه باید از متد close روی متغییر workbook استفاده کنم.

workbook.close() 

خب! فایل اکسلمون ایجاد شد!

ایجاد یک فایل اکسل با استفاده از پایتون.
creating an excel file using python

توی مطلب بعدی توضیح میدم که چطور میتونیم با استفاده از حلقه توی سلول‌های مختلف یک شیت بنویسیم.