API منبع باز Python برای Google Sheets
ایجاد، اشتراکگذاری، تجزیه و اصلاح فایلهای صفحهگسترده اکسل XML از طریق کتابخانه Python منبع باز.
Gspread یک پیادهسازی پایتون منبع باز برای Google Sheets است. این کتابخانه به برنامه نویسان رایانه امکان می دهد تا یک فایل صفحه گسترده را از برنامه های پایتون خود ایجاد، باز و تغییر دهند. هر روز افراد بیشتری استفاده از سرویسهای آنلاین مانند Google Sheets را انتخاب میکنند.
چندین ویژگی مهم به طور کامل توسط کتابخانه Gspread پشتیبانی می شود، مانند ایجاد یک صفحه گسترده جدید، انتخاب و به اشتراک گذاری یک صفحه گسترده، ایجاد صفحه کار، حذف یک کاربرگ، دریافت مقدار سلول، دریافت مقادیر از یک ستون و همچنین از یک ردیف صفحه، جستجو یک سلول، به روز رسانی یک مقدار سلول، گرفتن مقدار از یک سلول به عنوان یک لیست و بسیاری موارد دیگر.
شروع کار با Gspread
برای اجرای روان Gspread باید پایتون 3.6 یا بالاتر را روی سیستم خود نصب کنید. روش توصیه شده برای نصب از طریق PIP. لطفا از دستور زیر استفاده کنید.
Gspread را از طریق دستور PIP نصب کنید
pip install gspread
ایجاد و اشتراک گذاری صفحه گسترده از طریق کتابخانه پایتون
Gspread API ویژگی هایی را برای ایجاد و اصلاح صفحه گسترده جدید فراهم می کند. این به برنامه نویسان نرم افزار اجازه می دهد تا یک صفحه گسترده خالی در داخل برنامه های پایتون خود تنها با چند دستور ایجاد کنند. لطفاً به یاد داشته باشید که صفحه گسترده جدید فقط برای حساب اسکریپت قابل مشاهده خواهد بود. برای دسترسی به صفحه گسترده جدید ایجاد شده باید با ایمیل شما به اشتراک گذاشته شود. به راحتی می توانید یک کاربرگ در داخل آن ایجاد کنید.
صفحه گسترده ایجاد کنید و کاربرگ را از طریق کتابخانه پایتون به آن اضافه کنید
sh = gc.create('A new spreadsheet')
# Add a new worksheet to the list of current sheets
try:
sheet = spreadsheet.worksheet(tab_label)
except gspread.exceptions.WorksheetNotFound:
spreadsheet.add_worksheet( tab_label, 1, len(col_defs) )
sheet = spreadsheet.worksheet( tab_label )
باز کردن صفحه گسترده از طریق پایتون
کتابخانه صفحهگسترده منبع باز Gspread به توسعه دهندگان نرمافزار اجازه میدهد فایلهای CSV را به فرمت فایل XML اکسل 2003 تنها با چند خط کد تبدیل کنند. اول از همه، باید یک فایل CSV را از سرور بارگذاری کنید تا تجزیه شود و داده ها را از تجزیه کننده به رایتر منتقل کنید و نوع رایتر را به XML تغییر دهید. پس از آن فایل را با نام مشخص شده و هدف مشخص شده ذخیره کنید.
باز کردن صفحه گسترده موجود از طریق کتابخانه پایتون
# You can open a spreadsheet by its title as it appears in Google Docs
sh = gc.open('My poor gym results') # <-- Look ma, no keys!
# If you want to be specific, use a key (which can be extracted from the spreadsheet's url)
sht1 = gc.open_by_key('0BmgG6nO_6dprdS1MN3d3MkdPa142WFRrdnRRUWl1UFE')
# Or, if you feel really lazy to extract that key, paste the entire url
sht2 = gc.open_by_url('https://docs.google.com/spreadsheet/ccc?key=0Bm...FE&hl')
فایل XML اکسل 2003 را تجزیه کنید
کتابخانه Gspread به توسعه دهندگان این امکان را می دهد که با ارائه عنوان صفحه گسترده در دسترس، عنوان آن را همانطور که در Google Docs ظاهر می شود، باز کنند. برای دقیق بودن باید کلیدی را ارائه دهید که می تواند از URL صفحه گسترده گرفته شود. همچنین در صورتی که استخراج کلید برایتان دشوار است، میتوانید URL کامل را ارائه دهید. همچنین می توانید یک کاربرگ یا لیستی از همه کاربرگ های موجود را انتخاب کنید.
کار با سلول ها و ردیف های صفحه گسترده
کپی کردن داده ها از یک یا چند سلول کاربرگ به سلول های دیگر یک روش بسیار رایج است. Gspread API پشتیبانی کاملی را برای دستکاری داده های سلولی فراهم می کند. شما به راحتی می توانید مقدار را از یک سلول یا از ردیف ها و ستون های صفحه گسترده دریافت کنید. API همچنین ویژگی هایی را ارائه می دهد که تمام مقادیر را از یک کاربرگ به عنوان لیستی از لیست ها دریافت می کند. همچنین می توانید سلولی را با مقدار دقیق جستجو کنید و همچنین یک سلول معادل با عبارت منظم پیدا کنید.
از طریق کتابخانه پایتون، قالب بندی اولیه را به سلول های صفحه گسترده اعمال کنید
# Set text format to bold:
worksheet.format('A1:B1', {'textFormat': {'bold': True}})
# Color the background of a Cell range in black
# change horizontal alignment, text color and font size
worksheet.format("A2:B2", {
"backgroundColor": {
"red": 0.0,
"green": 0.0,
"blue": 0.0
},
"horizontalAlignment": "CENTER",
"textFormat": {
"foregroundColor": {
"red": 1.0,
"green": 1.0,
"blue": 1.0
},
"fontSize": 12,
"bold": True
}
})