कैसे अनुकूलन करने के लिए इस समारोह के लिए बड़े डेटासेट (100k पंक्तियों और 10 कर्नल) का उपयोग Google Apps स्क्रिप्ट?

0

सवाल

इस समारोह में ठीक चलता है, लेकिन अप करने के लिए 20 पंक्तियों. क्या कर सकता है मैं परिवर्तन बनाने के लिए यह तेजी से चलाने के लिए?

const SOURCE_FILE_ID = 'ID';

function getData() {
  const sourceSheet = SpreadsheetApp.openById(SOURCE_FILE_ID);
  const sourceRng = sourceSheet.getSheetByName('ativcopiar').getRange(1, 1, sourceSheet.getLastRow(), 9);
  const sourceValues  = sourceRng.getValues();

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Ativ.');
  var destinationRng = sheet.getRange(1, 1, sheet.getLastRow(), 9);
  destinationRng.clearContent();

  destinationRng.setValues(sourceValues);
}

कभी कभी, यह समय सीमा.

की सराहना करते हैं, किसी भी प्रकाश! धन्यवाद.

1

सबसे अच्छा जवाब

1

मुझे विश्वास है कि अपने लक्ष्य के रूप में निम्नानुसार है.

  • आप चाहते हैं को कम करने के लिए प्रक्रिया की लागत अपनी स्क्रिप्ट.

इस मामले में, कैसे उपयोग करने के बारे में चादरें एपीआई? जब पत्रक एपीआई प्रयोग किया जाता है, प्रक्रिया की लागत कर सकते हैं एक छोटे से कम हो. रेफरी जब चादरें एपीआई प्रयोग किया जाता है के लिए अपनी स्क्रिप्ट, यह हो जाता है के रूप में इस प्रकार है ।

संशोधित स्क्रिप्ट:

इससे पहले कि आप इस स्क्रिप्ट का उपयोग करें, कृपया सक्षम चादरें एपीआई पर उन्नत गूगल सेवाओं.

function myFunction() {
  const SOURCE_FILE_ID = '###';
  const sheet = SpreadsheetApp.openById(SOURCE_FILE_ID).getSheetByName('ativcopiar');
  const dstSS = SpreadsheetApp.getActiveSpreadsheet();
  var dstSheet = dstSS.getSheetByName('Ativ.');
  var destinationRng = dstSheet.getRange(1, 1, dstSheet.getLastRow(), 9);
  destinationRng.clearContent();
  SpreadsheetApp.flush();
  const values = Sheets.Spreadsheets.Values.get(dstSS.getId(), "'ativcopiar'!A1:I" + sheet.getLastRow()).values;
  Sheets.Spreadsheets.Values.update({values}, dstSS.getId(), "Ativ.", {valueInputOption: "USER_ENTERED"});
}

संदर्भ:

2021-11-23 23:19:15

यह सब सही लगता है, लेकिन यह मुझे एक त्रुटि है, कह रही है कि nº पंक्तियों की सीमा में होना चाहिए कम से कम 1 के लिए var destinationRng = dstSheet.getRange(1, 1, dstSheet.getLastRow(), 9);
Antonio Santos

@आंटोनीयो सॅंटोस धन्यवाद जवाब देने के लिए. मैं असुविधा के लिए माफी माँगने. उस मामले में, कैसे के बारे में संशोधित var destinationRng = dstSheet.getRange(1, 1, dstSheet.getLastRow(), 9) करने के लिए var destinationRng = dstSheet.getRange(1, 1, dstSheet.getLastRow() || 1, 9);? और, को संशोधित करके इस परीक्षण कृपया, यह फिर से.
Tanaike

आपको बहुत बहुत धन्यवाद!
Antonio Santos

मैं वास्तव में सही रूप में परीक्षण किया बस अब. मैं था के रूप में चिह्नित के रूप में ठीक है, आप जानते हुए भी इक्का में अपने जवाब. हालांकि, यह काम करने के लिए, आप चाहते हैं बदलने के लिए है const values = Sheets.Spreadsheets.Values.get(dstSS.getId(), "'ativcopiar'!A1:I" + sheet.getLastRow()).values; के लिए const values = Sheets.Spreadsheets.Values.get(SOURCE_FILE_ID, "'ativcopiar'!A1:I" + sheet.getLastRow()).values; धन्यवाद आप हमेशा के लिए समुदाय की मदद!
Antonio Santos

@आंटोनीयो सॅंटोस धन्यवाद जवाब देने के लिए. मैं खुश हूँ अपने मुद्दे को हल किया गया था. धन्यवाद, भी है.
Tanaike

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में