উন্নত পত্রক পরিষেবা

গুগল শিটসে ডেটা পড়া, সম্পাদনা, ফরম্যাট করা এবং উপস্থাপন করার জন্য অ্যাপস স্ক্রিপ্ট।

অ্যাডভান্সড শীটস সার্ভিস আপনাকে গুগল অ্যাপস স্ক্রিপ্ট ব্যবহার করে শীটস এপিআই অ্যাক্সেস করার সুযোগ দেয়। অ্যাপস স্ক্রিপ্টের বিল্ট-ইন গুগল শীটস এপিআই সার্ভিসের মতোই, এই এপিআই স্ক্রিপ্টগুলোকে গুগল শীটসের ডেটা পড়তে, সম্পাদনা করতে, ফরম্যাট করতে এবং উপস্থাপন করতে দেয়। বেশিরভাগ ক্ষেত্রে, বিল্ট-ইন সার্ভিসটি ব্যবহার করা সহজ, কিন্তু এই অ্যাডভান্সড সার্ভিসটি কয়েকটি অতিরিক্ত ফিচার প্রদান করে।

এটি একটি উন্নত পরিষেবা যা ব্যবহারের আগে সক্রিয় করতে হবে।

রেফারেন্স

এই পরিষেবা সম্পর্কে বিস্তারিত তথ্যের জন্য, শীটস এপিআই (Sheets API)-এর রেফারেন্স ডকুমেন্টেশন দেখুন। অ্যাপস স্ক্রিপ্ট (Apps Script)-এর অন্যান্য সকল অ্যাডভান্সড পরিষেবার মতো, অ্যাডভান্সড শীটস পরিষেবাটিও পাবলিক এপিআই (public API)-এর মতোই একই অবজেক্ট, মেথড এবং প্যারামিটার ব্যবহার করে। আরও তথ্যের জন্য, ‘মেথড সিগনেচার কীভাবে নির্ধারণ করা হয়’ (How method signatures are determined ) দেখুন।

সমস্যা জানাতে এবং অন্যান্য সহায়তা পেতে, শীটস সাপোর্ট গাইড দেখুন।

নমুনা কোড

নিম্নলিখিত নমুনা কোডটি এপিআই-এর সংস্করণ ৪ ব্যবহার করে; অ্যাপস স্ক্রিপ্টে অ্যাডভান্সড সার্ভিস হিসেবে শীটস এপিআই-এর এটিই একমাত্র সংস্করণ যা উপলব্ধ।

একটি পরিসর থেকে মান পড়ুন

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে শীটস অ্যাডভান্সড সার্ভিস ব্যবহার করে একটি শীটের নির্দিষ্ট রেঞ্জ থেকে ডেটা ভ্যালু পড়া যায়। এটি 'রিড এ সিঙ্গেল রেঞ্জ' রেসিপি স্যাম্পলটির সমতুল্য।

অ্যাডভান্সড/শিটস.জিএস
/**
 * Read a range (A1:D5) of data values. Logs the values.
 * @param {string} spreadsheetId The spreadsheet ID to read from.
 * @see https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/get
 */
function readRange(spreadsheetId = yourspreadsheetId) {
  try {
    const response = Sheets.Spreadsheets.Values.get(
      spreadsheetId,
      "Sheet1!A1:D5",
    );
    if (response.values) {
      console.log(response.values);
      return;
    }
    console.log("Failed to get range of values from spreadsheet");
  } catch (e) {
    // TODO (developer) - Handle exception
    console.log("Failed with error %s", e.message);
  }
}

একাধিক পরিসরে মান লিখুন

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি অনুরোধের মাধ্যমে একটি শীটের বিভিন্ন, বিচ্ছিন্ন রেঞ্জে ডেটা লেখা যায়। এটি 'একাধিক রেঞ্জে লিখুন' রেসিপি স্যাম্পলটির সমতুল্য।

অ্যাডভান্সড/শিটস.জিএস
/**
 * Write to multiple, disjoint data ranges.
 * @param {string} spreadsheetId The spreadsheet ID to write to.
 * @see https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/batchUpdate
 */
function writeToMultipleRanges(spreadsheetId = yourspreadsheetId) {
  // Specify some values to write to the sheet.
  const columnAValues = [["Item", "Wheel", "Door", "Engine"]];
  const rowValues = [
    ["Cost", "Stocked", "Ship Date"],
    ["$20.50", "4", "3/1/2016"],
  ];

  const request = {
    valueInputOption: "USER_ENTERED",
    data: [
      {
        range: "Sheet1!A1:A4",
        majorDimension: "COLUMNS",
        values: columnAValues,
      },
      {
        range: "Sheet1!B1:D2",
        majorDimension: "ROWS",
        values: rowValues,
      },
    ],
  };
  try {
    const response = Sheets.Spreadsheets.Values.batchUpdate(
      request,
      spreadsheetId,
    );
    if (response) {
      console.log(response);
      return;
    }
    console.log("response null");
  } catch (e) {
    // TODO (developer) - Handle  exception
    console.log("Failed with error %s", e.message);
  }
}

একটি নতুন শীট যোগ করুন

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে নির্দিষ্ট আকার এবং ট্যাব রঙ সহ একটি নতুন শীট তৈরি করতে হয়। এটি 'অ্যাড এ শীট' রেসিপি নমুনার সমতুল্য।

অ্যাডভান্সড/শিটস.জিএস
/**
 * Add a new sheet with some properties.
 * @param {string} spreadsheetId The spreadsheet ID.
 * @see https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate
 */
function addSheet(spreadsheetId = yourspreadsheetId) {
  const requests = [
    {
      addSheet: {
        properties: {
          title: "Deposits",
          gridProperties: {
            rowCount: 20,
            columnCount: 12,
          },
          tabColor: {
            red: 1.0,
            green: 0.3,
            blue: 0.4,
          },
        },
      },
    },
  ];
  try {
    const response = Sheets.Spreadsheets.batchUpdate(
      { requests: requests },
      spreadsheetId,
    );
    console.log(
      `Created sheet with ID: ${response.replies[0].addSheet.properties.sheetId}`,
    );
  } catch (e) {
    // TODO (developer) - Handle exception
    console.log("Failed with error %s", e.message);
  }
}

একটি পিভট টেবিল তৈরি করুন

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে উৎস ডেটা থেকে একটি পিভট টেবিল তৈরি করতে হয়। এটি 'অ্যাড এ পিভট টেবিল' রেসিপি স্যাম্পলটির সমতুল্য।

অ্যাডভান্সড/শিটস.জিএস
/**
 * Add a pivot table.
 * @param {string} spreadsheetId The spreadsheet ID to add the pivot table to.
 * @param {string} pivotSourceDataSheetId The sheet ID to get the data from.
 * @param {string} destinationSheetId The sheet ID to add the pivot table to.
 * @see https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate
 */
function addPivotTable(
  spreadsheetId = yourspreadsheetId,
  pivotSourceDataSheetId = yourpivotSourceDataSheetId,
  destinationSheetId = yourdestinationSheetId,
) {
  const requests = [
    {
      updateCells: {
        rows: {
          values: [
            {
              pivotTable: {
                source: {
                  sheetId: pivotSourceDataSheetId,
                  startRowIndex: 0,
                  startColumnIndex: 0,
                  endRowIndex: 20,
                  endColumnIndex: 7,
                },
                rows: [
                  {
                    sourceColumnOffset: 0,
                    showTotals: true,
                    sortOrder: "ASCENDING",
                    valueBucket: {
                      buckets: [
                        {
                          stringValue: "West",
                        },
                      ],
                    },
                  },
                  {
                    sourceColumnOffset: 1,
                    showTotals: true,
                    sortOrder: "DESCENDING",
                    valueBucket: {},
                  },
                ],
                columns: [
                  {
                    sourceColumnOffset: 4,
                    sortOrder: "ASCENDING",
                    showTotals: true,
                    valueBucket: {},
                  },
                ],
                values: [
                  {
                    summarizeFunction: "SUM",
                    sourceColumnOffset: 3,
                  },
                ],
                valueLayout: "HORIZONTAL",
              },
            },
          ],
        },
        start: {
          sheetId: destinationSheetId,
          rowIndex: 49,
          columnIndex: 0,
        },
        fields: "pivotTable",
      },
    },
  ];
  try {
    const response = Sheets.Spreadsheets.batchUpdate(
      { requests: requests },
      spreadsheetId,
    );
    // The Pivot table will appear anchored to cell A50 of the destination sheet.
  } catch (e) {
    // TODO (developer) - Handle exception
    console.log("Failed with error %s", e.message);
  }
}