اتوماسیون اکسل با Openpyxl در پایتون
موسسه پایا پروژه به عنوان متصدی انجام پروژه های پایتون وظیفه ی خود می داند که در راستای آموزش نرم افزار پایتون گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی پایتون مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.
اکسل ابزار قدرتمندی است که به شما امکان ذخیره، دستکاری و تجزیه و تحلیل داده ها را می دهد. به طور گسترده ای در صنایع مختلف برای تجزیه و تحلیل داده ها و گزارش استفاده می شود. با این حال، با افزایش حجم داده ها، اکسل کند می شود و انجام عملیات پیچیده زمان زیادی را می طلبد.
در این آموزش پایتون است که پایتون وارد عمل می شود. پایتون یک زبان برنامه نویسی همه کاره است که می تواند برای طیف گسترده ای از برنامه ها از جمله تجزیه و تحلیل داده ها، یادگیری ماشین و اتوماسیون استفاده شود. در این پروژه پایتون ، نحوه خودکار کردن گزارش اکسل خود با پایتون را مورد بحث قرار خواهیم داد.
مفاهیم مرتبط با انجام این پروژه پایتون:
- اکسل یک نرم افزار صفحه گسترده است که توسط مایکروسافت توسعه یافته است. برای ذخیره، دستکاری و تجزیه و تحلیل داده ها استفاده می شود.
- پایتون یک زبان برنامه نویسی سطح بالا است که برای طیف گسترده ای از برنامه ها از جمله توسعه وب، تجزیه و تحلیل داده ها و اتوماسیون استفاده می شود.
- Pandas یک کتابخانه پایتون است که برای دستکاری و تجزیه و تحلیل داده ها استفاده می شود. ساختارهای داده ای را برای ذخیره سازی و دستکاری کارآمد مجموعه داده های بزرگ فراهم می کند.
- Openpyxl یک کتابخانه پایتون است که برای خواندن و نوشتن فایل های اکسل استفاده می شود. به شما این امکان را می دهد تا با استفاده از پایتون عملیات مختلفی را بر روی فایل های اکسل انجام دهید.
مراحل پروژه پایتون:
- پایتون و کتابخانه های مورد نیاز را نصب کنید – ابتدا باید پایتون و کتابخانه های مورد نیاز مانند Pandas و Openpyxl را نصب کنید.
- بارگیری فایل اکسل – در مرحله بعد، باید فایل اکسل را با استفاده از پانداها بارگیری کنید. Pandas تابعی به نام “read_excel” ارائه می دهد که به شما امکان می دهد فایل های اکسل را بخوانید.
- انجام دستکاری داده ها – پس از بارگیری داده ها، می توانید عملیات مختلفی مانند فیلتر کردن، مرتب سازی و گروه بندی را با استفاده از پاندا انجام دهید.
- نوشتن داده ها در اکسل – پس از انجام عملیات مورد نیاز، می توانید داده ها را با استفاده از openpyxl به فایل اکسل برگردانید.
رویکردهای ممکن مختلف:
- استفاده از Pandas و Openpyxl – میتوانید از Pandas برای بارگذاری فایل اکسل، دستکاری دادهها و سپس نوشتن دادهها به فایل اکسل با استفاده از openpyxl استفاده کنید.
- استفاده از xlwings – xl-wings یک کتابخانه پایتون است که به شما امکان می دهد با استفاده از پایتون با اکسل تعامل داشته باشید. میتوانید از xlwings برای خودکارسازی وظایف اکسل مانند ورود دادهها، قالببندی و نمودار استفاده کنید.
- استفاده از PyXLL – PyXLL یک کتابخانه پایتون است که به شما امکان می دهد توابع پایتون را در اکسل بنویسید. می توانید از PyXLL برای انجام محاسبات پیچیده و دستکاری داده ها در اکسل با استفاده از پایتون استفاده کنید.
مثال 1:
فایل اکسل را بارگیری کنید و داده ها را بنویسید:
import pandas as pd
from openpyxl import load_workbook
Load Excel File and give path to your file#
df = pd.read_excel(‘data.xlsx’)
Perform Data Manipulation#|
df = df[df[‘Sales’] > 1000]
Write Data to Excel File#
book = load_workbook(‘data.xlsx’)
writer = pd.ExcelWriter(‘data.xlsx’, engine=’openpyxl’)
writer.book = book
df.to_excel(writer, index=False)
()writer.save
در این مثال، ما از دو کتابخانه استفاده می کنیم: Pandas و Openpyxl. Pandas برای بارگذاری فایل اکسل و انجام دستکاری داده ها استفاده می شود در حالی که Openpyxl برای بازنویسی داده ها به فایل اکسل استفاده می شود.
ابتدا کتابخانه های مورد نیاز را با استفاده از عبارت “import” وارد می کنیم. سپس از تابع ‘pd.read_excel’ برای بارگذاری فایل Excel ‘data.xlsx’ در یک DataFrame Pandas به نام ‘df’ استفاده می کنیم.
در این مرحله از انجام پروژه پایتون، با فیلتر کردن دادههایی که «Sales» بیشتر از 1000 است، دادهها را روی DataFrame دستکاری میکنیم.
این کار با استفاده از خط کد زیر انجام می شود:
df = df[df[‘Sales’] > 1000]
در نهایت از Openpyxl برای بازنویسی داده های فیلتر شده در فایل اکسل استفاده می کنیم .ما با بارگیری فایل اکسل با استفاده از تابع ‘load_workbook’ و سپس ایجاد یک شی ExcelWriter با استفاده از تابع ‘pd.ExcelWriter’ شروع می کنیم.
ما خصیصه book شی نویسنده را روی Workbook بارگذاری شده تنظیم می کنیم و سپس از روش ‘to_excel’ شی DataFrame برای نوشتن داده های فیلتر شده در کاربرگ استفاده می کنیم. در نهایت، تغییرات را در فایل اکسل ذخیره می کنیم.
مثال2:
فایل اکسل را بارگیری کنید، نمودارها را رسم کنید و داده ها را دستکاری کنید:
import necessary libraries#
import pandas as pd
import matplotlib.pyplot as plt
Import data from Excel file#
sales_data = pd.read_excel(‘/content/productSales.xlsx’) #give file path
Create a bar chart#
plt.bar(sales_data[‘product’], sales_data[‘sales’])
plt.title(‘Sales by Product’)
plt.xlabel(‘Product’)
plt.ylabel(‘Sales’)
()plt.show
Manipulate data as needed#
()sales_data = sales_data.groupby(‘product’).sum
Export data back into Excel file #
writer = pd.ExcelWriter(‘sales_report.xlsx’)
sales_data.to_excel(writer, sheet_name=’Sales Data’)
()writer.save
()writer.close
در این کد، کتابخانه های لازم pandas و matplotlib.pyplot را وارد کردیم، داده ها را از یک فایل اکسل (‘productSales.xlsx’) با استفاده از تابع read_excel() pandas می خواند و با استفاده از تابع ()plt.bar matplotlib یک نمودار میله ای ایجاد می کنیم و سپس دادهها را با گروهبندی بر اساس «محصول» و جمعبندی فروش هر محصول با استفاده از گروه پانداها با ()توابع و ()sum دستکاری میکند.
پس از دستکاری داده ها، با استفاده از تابع ()to_excel آن را به یک فایل اکسل جدید (‘sales_report.xlsx’) برمی گردیم و فایل را با استفاده از متدهای ()save و ()close شی ExcelWriter ذخیره و می بندیم.
منابع:
dataquest.io