گوگل شیت
Google Sheets
خواندن، نوشتن و مدیریت داده در Google Sheets
نمای کلی
Google Sheets یکی از محبوبترین ابزارها برای مدیریت داده است که با n8n میتوانید آن را خودکار کنید.
قابلیتهای کلیدی:
- خواندن داده از سلولها و ردیفها
- نوشتن و بهروزرسانی داده
- افزودن ردیف جدید
- حذف ردیفها
- جستجو در شیت
- کار با چند صفحه (Sheet)
- فرمولنویسی
کاربردها:
- دیتابیس ساده برای پروژههای کوچک
- گزارشگیری خودکار
- فرمهای ثبتنام و نظرسنجی
- لیست وظایف و پروژهها
- ترکیب داده از منابع مختلف
- داشبورد و نمودار
مزایا:
- رایگان و در دسترس
- رابط کاربری آشنا
- اشتراکگذاری آسان
- همگامسازی خودکار
- قابلیت همکاری تیمی
کاربردهای متداول
1. ثبت فرم در شیت
ذخیره فرمهای وب در Google Sheets:
Webhook (فرم) → Google Sheets (Append)
- Sheet ID: از URL شیت
- Range: Sheet1!A:E
- Values: [{{$json.name}}, {{$json.email}}, {{$json.phone}}, {{$now.toISO()}}]2. خواندن لیست و ارسال ایمیل
ارسال ایمیل به لیست کاربران:
Google Sheets (Read - لیست کاربران)
→ Loop
→ Gmail (Send)
- To: {{$json.email}}
- Message: محتوای شخصیسازی شده3. گزارش روزانه
ذخیره آمار روزانه:
Schedule (هر شب 23:00)
→ MySQL (آمار فروش امروز)
→ Google Sheets (Append)
- Values: [{{$now.toFormat('yyyy-MM-dd')}}, {{$json.sales}}, {{$json.orders}}]4. بهروزرسانی موجودی
همگامسازی موجودی از دیتابیس:
Schedule (هر ساعت)
→ MySQL (لیست محصولات)
→ Loop
→ Google Sheets (Lookup - پیدا کردن ردیف محصول)
→ Google Sheets (Update - بهروزرسانی موجودی)5. لیست وظایف
افزودن وظیفه جدید:
Telegram (دریافت پیام /task)
→ Set (پردازش پیام)
→ Google Sheets (Append)
- Range: Tasks!A:D
- Values: [{{$json.task}}, "pending", {{$now}}, {{$json.user}}]6. نظرسنجی
ذخیره نتایج نظرسنجی:
Webhook (نظرسنجی)
→ Google Sheets (Append)
- Values: [$json همه فیلدها, Timestamp]
→ Gmail (Send - تشکر از شرکتکننده)7. ترکیب داده از چند منبع
ادغام داده از API و دیتابیس:
[HTTP Request - API 1] ──┐
[MySQL - Query] ─────────┼── Merge
[HTTP Request - API 2] ──┘
→ Loop
→ Google Sheets (Append - ذخیره ترکیبی)8. داشبورد زنده
بهروزرسانی شیت برای نمودار:
Schedule (هر 5 دقیقه)
→ API (آمار فروش)
→ Google Sheets (Update - سلولهای خاص)
→ شیت خودکار نمودار را بهروز میکند9. مدیریت موجودی
کنترل موجودی محصولات:
Google Sheets (Read - لیست محصولات)
→ Loop
→ IF (موجودی < 10)
→ True: Gmail (اعلان موجودی کم)
→ False: ادامه10. بکآپ دیتابیس
بکآپ روزانه در شیت:
Schedule (هر شب)
→ MySQL (SELECT * FROM users)
→ Google Sheets (Clear - پاک کردن شیت قدیمی)
→ Google Sheets (Append - افزودن داده جدید)نکات حرفهای
💡 نکات حرفهای:
- 1دریافت Sheet ID از URL:
https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
^^^^^^^^ این قسمت Sheet ID است ^^^^^^^^- 1Range Notation:
Sheet1!A1:D10 // ستون A تا D، ردیف 1 تا 10
Sheet1!A:A // تمام ستون A
Sheet1!1:1 // تمام ردیف 1
Sheet1!A:D // ستونهای A تا D، همه ردیفها
'My Sheet'!A1 // Sheet با فاصله- 1Append vs Update:
- Append: اضافه کردن ردیف جدید به انتها
- Update: تغییر ردیف/سلول موجود
- 1کار با Header:
Range: Sheet1!A1:D1 // ردیف اول = header
Read → داده از ردیف 2 شروع میشود- 1فرمول در شیت: میتوانید فرمول بنویسید:
Values: [["=SUM(A2:A10)", "=AVERAGE(B2:B10)"]]- 1Timestamp خودکار:
Values: [[data1, data2, "{{$now.toFormat('yyyy-MM-dd HH:mm:ss')}}"]]- 1Multiple Sheets: از نام Sheet در Range استفاده کنید:
Users!A:D
Products!A:F
Orders!A:E- 1Lookup بهینه: اگر جستجوی زیادی دارید، داده را یکبار بخوانید و در n8n جستجو کنید:
Google Sheets (Read All) → Set (فیلتر در n8n)- 1Batch Updates: برای بهروزرسانی چند سلول، از یک Update استفاده کنید:
Range: A2:D2
Values: [[val1, val2, val3, val4]]- 1خالی بودن سلول: برای سلول خالی از رشته خالی استفاده کنید:
Values: [["data", "", "data"]] // ستون وسط خالی- 1Data Types: Google Sheets خودکار نوع تشخیص میدهد:
- عدد:
123یا"123" - متن:
"hello" - تاریخ:
"2024-01-15"یا فرمول=TODAY() - Boolean:
TRUEیاFALSE
- 1Performance: برای شیتهای بزرگ:
- فقط ستونهای لازم را بخوانید
- از Pagination استفاده کنید
- Cache کنید اگر داده کمتر تغییر میکند
- 1Sharing: شیت باید Public نباشد، فقط با Credential به اشتراک گذاشته شود.
- 1Version History: Google Sheets خودکار نسخهها را نگه میدارد.
- 1Array Formula: برای محاسبات پیشرفته:
=ARRAYFORMULA(IF(A2:A="", "", B2:B*C2:C))رفع مشکلات
خطاهای رایج
1. خطای "The caller does not have permission"
علت: شیت با credential به اشتراک گذاشته نشده
راهحل
- شیت را باز کنید
- Share کلیک کنید
- ایمیل OAuth یا Service Account را اضافه کنید
- دسترسی Editor بدهید
2. خطای "Requested entity was not found"
علت: Sheet ID اشتباه است
راهحل
- Sheet ID از URL بگیرید:
https://docs.google.com/spreadsheets/d/SHEET_ID_HERE/edit
- کپی کنید بخش بین
/d/و/edit
3. Range اشتباه است
علت: فرمت Range نادرست
راهحل
- فرمت صحیح:
Sheet1!A1:D10 - برای تمام ستونها:
Sheet1!A:D - برای یک ردیف:
Sheet1!A2:D2 - نام Sheet حساس به حروف بزرگ/کوچک است
4. خطای "Unable to parse range"
علت: نام Sheet فاصله دارد یا کاراکتر خاص
راهحل
- نام Sheet را در Single Quote بگذارید:
'My Sheet'!A1:D10
5. داده درست ذخیره نمیشود
علت: فرمت Values اشتباه
راهحل
- Values باید آرایه باشد:
[["value1", "value2", "value3"]] برای یک ردیف [["row1-col1", "row1-col2"], ["row2-col1", "row2-col2"]] برای چند ردیف
6. Append به جای نادرست میرود
علت: Range اشتباه یا شیت خالی نیست
راهحل
- Append به اولین ردیف خالی میرود
- Range را به ستونهای مورد نظر محدود کنید:
A:D
7. خطای Quota Exceeded
علت: درخواستهای زیادی در زمان کم
راهحل
- Google Sheets API: 100 درخواست/100 ثانیه/کاربر
- بین درخواستها تاخیر بگذارید (Wait Node)
- Batch operations استفاده کنید