📊

گوگل شیت

Google Sheets

خواندن، نوشتن و مدیریت داده در Google Sheets

ابزارهای کاری
متوسط
ویژه
۰بازدید
اشتراک‌گذاری:
مستندات رسمی

نمای کلی

Google Sheets یکی از محبوب‌ترین ابزارها برای مدیریت داده است که با n8n می‌توانید آن را خودکار کنید.

قابلیت‌های کلیدی:

  • خواندن داده از سلول‌ها و ردیف‌ها
  • نوشتن و به‌روزرسانی داده
  • افزودن ردیف جدید
  • حذف ردیف‌ها
  • جستجو در شیت
  • کار با چند صفحه (Sheet)
  • فرمول‌نویسی

کاربردها:

  • دیتابیس ساده برای پروژه‌های کوچک
  • گزارش‌گیری خودکار
  • فرم‌های ثبت‌نام و نظرسنجی
  • لیست وظایف و پروژه‌ها
  • ترکیب داده از منابع مختلف
  • داشبورد و نمودار

مزایا:

  • رایگان و در دسترس
  • رابط کاربری آشنا
  • اشتراک‌گذاری آسان
  • همگام‌سازی خودکار
  • قابلیت همکاری تیمی

کاربردهای متداول

1. ثبت فرم در شیت

ذخیره فرم‌های وب در Google Sheets:

code
Webhook (فرم) → Google Sheets (Append)
  - Sheet ID: از URL شیت
  - Range: Sheet1!A:E
  - Values: [{{$json.name}}, {{$json.email}}, {{$json.phone}}, {{$now.toISO()}}]

2. خواندن لیست و ارسال ایمیل

ارسال ایمیل به لیست کاربران:

code
Google Sheets (Read - لیست کاربران)
  → Loop
    → Gmail (Send)
      - To: {{$json.email}}
      - Message: محتوای شخصی‌سازی شده

3. گزارش روزانه

ذخیره آمار روزانه:

code
Schedule (هر شب 23:00)
  → MySQL (آمار فروش امروز)
  → Google Sheets (Append)
    - Values: [{{$now.toFormat('yyyy-MM-dd')}}, {{$json.sales}}, {{$json.orders}}]

4. به‌روزرسانی موجودی

همگام‌سازی موجودی از دیتابیس:

code
Schedule (هر ساعت)
  → MySQL (لیست محصولات)
  → Loop
    → Google Sheets (Lookup - پیدا کردن ردیف محصول)
    → Google Sheets (Update - به‌روزرسانی موجودی)

5. لیست وظایف

افزودن وظیفه جدید:

code
Telegram (دریافت پیام /task)
  → Set (پردازش پیام)
  → Google Sheets (Append)
    - Range: Tasks!A:D
    - Values: [{{$json.task}}, "pending", {{$now}}, {{$json.user}}]

6. نظرسنجی

ذخیره نتایج نظرسنجی:

code
Webhook (نظرسنجی)
  → Google Sheets (Append)
    - Values: [$json همه فیلدها, Timestamp]
  → Gmail (Send - تشکر از شرکت‌کننده)

7. ترکیب داده از چند منبع

ادغام داده از API و دیتابیس:

code
[HTTP Request - API 1] ──┐
[MySQL - Query] ─────────┼── Merge
[HTTP Request - API 2] ──┘
  → Loop
    → Google Sheets (Append - ذخیره ترکیبی)

8. داشبورد زنده

به‌روزرسانی شیت برای نمودار:

code
Schedule (هر 5 دقیقه)
  → API (آمار فروش)
  → Google Sheets (Update - سلول‌های خاص)
  → شیت خودکار نمودار را به‌روز می‌کند

9. مدیریت موجودی

کنترل موجودی محصولات:

code
Google Sheets (Read - لیست محصولات)
  → Loop
    → IF (موجودی < 10)
      → True: Gmail (اعلان موجودی کم)
      → False: ادامه

10. بک‌آپ دیتابیس

بک‌آپ روزانه در شیت:

code
Schedule (هر شب)
  → MySQL (SELECT * FROM users)
  → Google Sheets (Clear - پاک کردن شیت قدیمی)
  → Google Sheets (Append - افزودن داده جدید)

نکات حرفه‌ای

💡 نکات حرفه‌ای:

  1. 1دریافت Sheet ID از URL:
code
https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
                                           ^^^^^^^^ این قسمت Sheet ID است ^^^^^^^^
  1. 1Range Notation:
code
Sheet1!A1:D10    // ستون A تا D، ردیف 1 تا 10
   Sheet1!A:A       // تمام ستون A
   Sheet1!1:1       // تمام ردیف 1
   Sheet1!A:D       // ستون‌های A تا D، همه ردیف‌ها
   'My Sheet'!A1    // Sheet با فاصله
  1. 1Append vs Update:
  • Append: اضافه کردن ردیف جدید به انتها
  • Update: تغییر ردیف/سلول موجود
  1. 1کار با Header:
code
Range: Sheet1!A1:D1  // ردیف اول = header
   Read → داده از ردیف 2 شروع می‌شود
  1. 1فرمول در شیت: می‌توانید فرمول بنویسید:
javascript
Values: [["=SUM(A2:A10)", "=AVERAGE(B2:B10)"]]
  1. 1Timestamp خودکار:
javascript
Values: [[data1, data2, "{{$now.toFormat('yyyy-MM-dd HH:mm:ss')}}"]]
  1. 1Multiple Sheets: از نام Sheet در Range استفاده کنید:
code
Users!A:D
   Products!A:F
   Orders!A:E
  1. 1Lookup بهینه: اگر جستجوی زیادی دارید، داده را یکبار بخوانید و در n8n جستجو کنید:
code
Google Sheets (Read All) → Set (فیلتر در n8n)
  1. 1Batch Updates: برای به‌روزرسانی چند سلول، از یک Update استفاده کنید:
javascript
Range: A2:D2
   Values: [[val1, val2, val3, val4]]
  1. 1خالی بودن سلول: برای سلول خالی از رشته خالی استفاده کنید:
javascript
Values: [["data", "", "data"]]  // ستون وسط خالی
  1. 1Data Types: Google Sheets خودکار نوع تشخیص می‌دهد:
  • عدد: 123 یا "123"
  • متن: "hello"
  • تاریخ: "2024-01-15" یا فرمول =TODAY()
  • Boolean: TRUE یا FALSE
  1. 1Performance: برای شیت‌های بزرگ:
  • فقط ستون‌های لازم را بخوانید
  • از Pagination استفاده کنید
  • Cache کنید اگر داده کمتر تغییر می‌کند
  1. 1Sharing: شیت باید Public نباشد، فقط با Credential به اشتراک گذاشته شود.
  1. 1Version History: Google Sheets خودکار نسخه‌ها را نگه می‌دارد.
  1. 1Array Formula: برای محاسبات پیشرفته:
code
=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 استفاده کنید

آیا این مستندات مفید بود؟