Gelişmiş E-Tablolar Hizmeti

Gelişmiş E-Tablolar hizmeti, E-Tablolar API'sine Apps Komut Dosyası. Apps Komut Dosyası'nın yerleşik Google E-Tablolar API hizmetine benzer şekilde, bu API, komut dosyalarının Google E-Tablolar'da veri okumasına, düzenlemesine, biçimlendirmesine ve sunmasına olanak tanır. Çoğu durumda yerleşik hizmet daha kolay kullanılır ancak bu gelişmiş hizmet birkaç ek özellik sunar.

Referans

Bu hizmetle ilgili ayrıntılı bilgi için bkz. Sheets API ile ilgili referans belgelerini inceleyin. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi gelişmiş E-Tablolar hizmeti de herkese açık API ile aynı nesneler, yöntemler ve parametreler olmalıdır. Daha fazla bilgi için Yöntem imzaları nasıl belirlenir? bölümüne bakın.

Sorunları bildirmek ve başka destek almak için şu sayfaya bakın: E-Tablolar destek rehberi.

Örnek kod

Aşağıdaki örnek kod API'nin 4. sürümünü kullanmaktadır; E-Tablolar API'nin şu anda gelişmiş hizmet sunduğumuzu gördük.

Bir aralıktaki değerleri okuma

Aşağıdaki örnekte, kapsamlı bir şekilde ayarlayabilirsiniz. Tek bir aralığı okuma tarifi örneğine eşdeğerdir.

advanced/sheets.gs
/**
 * 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);
  }
}

Birden fazla aralığa değer yazma

Aşağıdaki örnekte, farklı, ayrıktaki verilere nasıl veri yazılacağı gösterilmektedir tek istek içeren bir sayfadaki aralıktır. Bu, Birden çok aralığa yazma yemek tarifi örneği.

advanced/sheets.gs
/**
 * 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);
  }
}

Yeni sayfa ekleme

Aşağıdaki örnekte, belirli ayrıntılarla yeni bir sayfanın nasıl oluşturulacağı boyutunu ve sekme rengini seçin. Bu, Sayfa tarifi örneği ekleyin.

advanced/sheets.gs
/**
 * 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);
  }
}

Pivot tablo oluşturma

Aşağıdaki örnekte, kaynak verilerden nasıl pivot tablo oluşturulacağı gösterilmektedir. Pivot tablo ekleme ile eşdeğerdir. yemek tarifi örneği.

advanced/sheets.gs
/**
 * 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);
  }
}