گسترش Google Sheets

اسکریپت اپ‌های گوگل به شما امکان می‌دهد کارهای جدید و جالبی با گوگل شیت انجام دهید. می‌توانید از اسکریپت اپ‌ها برای اضافه کردن منوها ، دیالوگ‌ها و سایدبارهای سفارشی به گوگل شیت استفاده کنید. همچنین به شما امکان می‌دهد توابع سفارشی برای گوگل شیت بنویسید و گوگل شیت را با سایر سرویس‌های گوگل مانند تقویم، درایو و جیمیل ادغام کنید.

بیشتر اسکریپت‌هایی که برای Google Sheets طراحی شده‌اند، آرایه‌ها را دستکاری می‌کنند تا با سلول‌ها، ردیف‌ها و ستون‌های یک صفحه گسترده تعامل داشته باشند. اگر با آرایه‌ها در جاوا اسکریپت آشنا نیستید، Codecademy یک ماژول آموزشی عالی برای آرایه‌ها ارائه می‌دهد. (توجه داشته باشید که این دوره توسط گوگل توسعه داده نشده و به آن وابسته نیست.)

برای آشنایی سریع با نحوه‌ی استفاده از Apps Script با Google Sheets، به راهنمای شروع سریع ۵ دقیقه‌ای برای ماکروها، منوها و توابع سفارشی مراجعه کنید.

شروع کنید

Apps Script شامل APIهای ویژه‌ای است که به شما امکان می‌دهد Google Sheets را به صورت برنامه‌نویسی ایجاد، مطالعه و ویرایش کنید. Apps Script می‌تواند به دو روش کلی با Google Sheets تعامل داشته باشد: هر اسکریپتی می‌تواند یک صفحه گسترده ایجاد یا تغییر دهد، در صورتی که کاربر اسکریپت مجوزهای لازم برای صفحه گسترده را داشته باشد، و یک اسکریپت همچنین می‌تواند به یک صفحه گسترده متصل شود، که به اسکریپت قابلیت‌های ویژه‌ای برای تغییر رابط کاربری یا پاسخ دادن هنگام باز شدن صفحه گسترده می‌دهد. برای ایجاد یک اسکریپت متصل، از داخل Google Sheets، Extensions > Apps Script را انتخاب کنید.

سرویس Spreadsheet، صفحات گوگل (Google Sheets) را به عنوان یک شبکه (grid) در نظر می‌گیرد که با آرایه‌های دوبعدی کار می‌کند. برای بازیابی داده‌ها از صفحه گسترده، باید به صفحه گسترده‌ای که داده‌ها در آن ذخیره شده‌اند دسترسی پیدا کنید، محدوده‌ای را در صفحه گسترده که داده‌ها را در خود جای داده است، دریافت کنید و سپس مقادیر سلول‌ها را دریافت کنید. Apps Script با خواندن داده‌های ساختاریافته در صفحه گسترده و ایجاد اشیاء جاوا اسکریپت برای آنها، دسترسی به داده‌ها را تسهیل می‌کند.

خواندن داده‌ها

فرض کنید فهرستی از نام و شماره محصول دارید که آن را در یک صفحه گسترده ذخیره می‌کنید، همانطور که در تصویر زیر نشان داده شده است.

مثال زیر نحوه بازیابی و ثبت نام و شماره محصولات را نشان می‌دهد.

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

مشاهده گزارش‌ها

برای مشاهده داده‌های ثبت‌شده، در بالای ویرایشگر اسکریپت، روی Execution log کلیک کنید.

نوشتن داده‌ها

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

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

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

منوها و رابط‌های کاربری سفارشی

شما می‌توانید با افزودن منوها، کادرهای محاوره‌ای و نوارهای کناری سفارشی، Google Sheets را سفارشی کنید. برای یادگیری اصول اولیه ایجاد منوها، به راهنمای منوها مراجعه کنید. برای یادگیری سفارشی‌سازی محتوای یک کادر محاوره‌ای، به راهنمای سرویس HTML مراجعه کنید.

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

اگر قصد دارید رابط کاربری سفارشی خود را به عنوان بخشی از یک افزونه منتشر کنید، برای هماهنگی با سبک و طرح‌بندی ویرایشگر Google Sheets، راهنمای سبک را دنبال کنید.

اتصال به فرم‌های گوگل

Apps Script به شما امکان می‌دهد تا از طریق سرویس‌های Forms و Spreadsheet ، فرم‌های گوگل را به صفحات گوگل متصل کنید. این ویژگی می‌تواند به طور خودکار یک فرم گوگل را بر اساس داده‌های موجود در یک صفحه گسترده ایجاد کند. Apps Script همچنین به شما امکان می‌دهد از triggerهایی مانند onFormSubmit برای انجام یک عمل خاص پس از پاسخ کاربر به فرم استفاده کنید. برای کسب اطلاعات بیشتر در مورد اتصال صفحات گوگل به فرم‌های گوگل، راهنمای سریع ۵ دقیقه‌ای مدیریت پاسخ‌ها برای فرم‌های گوگل را امتحان کنید.

قالب‌بندی

کلاس Range متدهایی مانند setBackground(color) برای دسترسی و تغییر قالب یک سلول یا محدوده‌ای از سلول‌ها دارد. مثال زیر نحوه تنظیم سبک فونت یک محدوده را نشان می‌دهد:

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

اعتبارسنجی داده‌ها

Apps Script به شما امکان می‌دهد به قوانین اعتبارسنجی داده‌های موجود در Google Sheets دسترسی پیدا کنید یا قوانین جدیدی ایجاد کنید. برای مثال، نمونه زیر نحوه تنظیم یک قانون اعتبارسنجی داده‌ها را نشان می‌دهد که فقط اعداد بین ۱ تا ۱۰۰ را در یک سلول مجاز می‌کند.

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

برای جزئیات بیشتر در مورد کار با قوانین اعتبارسنجی داده‌ها، به SpreadsheetApp.newDataValidation() ، DataValidationBuilder و Range.setDataValidation(rule) مراجعه کنید.

نمودارها

Apps Script به شما امکان می‌دهد نمودارهایی را در یک صفحه گسترده جاسازی کنید که داده‌ها را در یک محدوده خاص نشان می‌دهند. مثال زیر یک نمودار میله‌ای جاسازی شده ایجاد می‌کند، با فرض اینکه داده‌های قابل رسم نمودار در سلول‌های A1:B15 دارید:

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

برای کسب اطلاعات بیشتر در مورد جاسازی نمودار در صفحه گسترده خود، به EmbeddedChart و سازندگان نمودار خاص، مانند EmbeddedPieChartBuilder ، مراجعه کنید.

توابع سفارشی در گوگل شیت

یک تابع سفارشی مشابه یک تابع صفحه گسترده داخلی مانند =SUM(A1:A5) است، با این تفاوت که شما رفتار تابع را با Apps Script تعریف می‌کنید. برای مثال، می‌توانید یک تابع سفارشی به in2mm() ایجاد کنید که مقداری را از اینچ به میلی‌متر تبدیل می‌کند، سپس با تایپ کردن =in2mm(A1) یا =in2mm(10) در یک سلول، از فرمول موجود در صفحه گسترده خود استفاده کنید.

برای کسب اطلاعات بیشتر در مورد توابع سفارشی، راهنمای سریع ۵ دقیقه‌ای «منوها» و «توابع سفارشی» را امتحان کنید، یا به راهنمای جامع‌تر توابع سفارشی نگاهی بیندازید.

ماکروها

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

افزونه‌های گوگل شیت

افزونه‌ها، پروژه‌های Apps Script بسته‌بندی‌شده‌ی ویژه‌ای هستند که درون Google Sheets اجرا می‌شوند و می‌توانند از فروشگاه افزونه‌های Google Sheets نصب شوند. اگر اسکریپتی برای Google Sheets توسعه داده‌اید و می‌خواهید آن را با جهان به اشتراک بگذارید، Apps Script به شما امکان می‌دهد اسکریپت خود را به عنوان یک افزونه منتشر کنید تا سایر کاربران بتوانند آن را از فروشگاه افزونه‌ها نصب کنند.

محرک‌ها

اسکریپت‌هایی که به یک فایل Google Sheets متصل هستند می‌توانند از محرک‌های ساده‌ای مانند توابع onOpen() و onEdit() برای پاسخ خودکار به زمانی که کاربری که دسترسی ویرایش به صفحه گسترده را دارد، آن را باز یا ویرایش می‌کند، استفاده کنند.

مانند تریگرهای ساده، تریگرهای قابل نصب به گوگل شیت اجازه می‌دهند هنگام وقوع یک رویداد خاص، یک تابع را به طور خودکار اجرا کند. با این حال، تریگرهای قابل نصب، انعطاف‌پذیری بیشتری نسبت به تریگرهای ساده ارائه می‌دهند و از رویدادهای زیر پشتیبانی می‌کنند: باز کردن، ویرایش، تغییر، ارسال فرم و رویدادهای زمان‌محور (ساعت).