簡體   English   中英

Google Sheets Apps 腳本 RichTextValueBuilder 參數與方法簽名不匹配

[英]Google Sheets Apps Script RichTextValueBuilder Parameters Don't Match method Signature

我正在努力以編程方式顯示“了解你的鄰居地圖”社區項目的居民列表。 我想為住所取任意數量的名字和姓氏,並以粗體列出姓氏並在任何名字和數字前導。 下面或鏈接中的 kludge 代碼是我的第一遍。 我已經嘗試了各種迭代來消除 go 的異常,但我沒有成功,而且我在文檔或谷歌上找不到任何具體的內容。

制作副本並使用此鏈接自行運行: https://docs.google.com/spreadsheets/d/1rWHG5CKHvFzohTq9fSl8p8AjNcFjX0Tatior_hvOncE/copy

我收到以下錯誤:“異常:參數 (SpreadsheetApp.RichTextValueBuilder) 與 SpreadsheetApp.Range.setRichTextValue 的方法簽名不匹配。(第 49 行,文件“代碼”)”

有任何想法嗎?

克魯奇在這里!

function main() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheetByName('Data');
  var address_array = dataSheet.getRange('AddressData').getValues();
  var bold = SpreadsheetApp.newTextStyle().setBold(true).build();
  var resident_count = 1;
  for (var i = 0; i < address_array.length; i++) {
    var resident_array = address_array[i];
    var resident_cell_range_name = 'Resident' + resident_count.toString();
    var resident_cell = dataSheet.getRange(resident_cell_range_name);
    var resident_text_array = [];
    var resident_bold = [];
    for (var j = 0; j < resident_array.length; j += 3) {
      var last = resident_array[j];
      var first = resident_array[j + 1];
      var number = resident_array[j + 2];
      if (last) {
        var bold_start_stop = [];
        var total = length_all(resident_text_array);
        bold_start_stop.push(total);
        bold_start_stop.push(total + last.length);
        resident_bold.push(bold_start_stop);
        resident_text_array.push(last)
      } 
      if (first) {
        if (number) {
          var name_num = first + ' - ' + number;
          resident_text_array.push(name_num)
        }
        else {
          resident_text_array.push(first)
        }
      } else {
        if (number) {
          resident_text_array.push(number)
        }
      }
    }
    var value = SpreadsheetApp.newRichTextValue();
    var resident_text = 'Some text';
//    var resident_text = resident_text_array.join(String.fromCharCode(10));
//    var resident_text = resident_text_array.join(' ');
    value.setText(resident_text);
//    for (start_stop of resident_bold) {  
//      value.setTextStyle(start_stop[0], start_stop[1], bold);
//    }
    value.build();
//    resident_cell.setValue('text');
    resident_cell.setRichTextValue(value);
    Logger.log(resident_text_array);
    resident_count += 1;
  }
  Logger.log(address_array);
}

function length_all(resident_text_array){
  var total = 0;
    for (each of resident_text_array) {
      total = total + each.length;
    }
  return total;
}

問題是在setRichTextValue() function 之外使用build()命令。

導致異常的原件:

value.build();
resident_cell.setRichTextValue(value);

固定的:

resident_cell.setRichTextValue(value.build());

我不確定為什么,但就是這樣!

我正在努力以編程方式顯示“了解你的鄰居地圖”社區項目的居民列表。 我想為住所取任意數量的名字和姓氏,並用粗體列出他們的姓氏,並以任何名字和數字開頭。 下面或來自鏈接的kludge代碼是我的第一遍。 我已經嘗試了各種迭代來消除 go 的異常,但我沒有成功,我在文檔或谷歌上找不到任何具體的東西。

制作一個副本並使用此鏈接自行運行: https://docs.google.com/spreadsheets/d/1rWHG5CKHvFzohTq9fSl8p8AjNcFjX0Tatior_hvOncE/copy

我收到以下錯誤:“異常:參數 (SpreadsheetApp.RichTextValueBuilder) 與 SpreadsheetApp.Range.setRichTextValue 的方法簽名不匹配。(第 49 行,文件“代碼”)”

有任何想法嗎?

克魯奇下來!

function main() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheetByName('Data');
  var address_array = dataSheet.getRange('AddressData').getValues();
  var bold = SpreadsheetApp.newTextStyle().setBold(true).build();
  var resident_count = 1;
  for (var i = 0; i < address_array.length; i++) {
    var resident_array = address_array[i];
    var resident_cell_range_name = 'Resident' + resident_count.toString();
    var resident_cell = dataSheet.getRange(resident_cell_range_name);
    var resident_text_array = [];
    var resident_bold = [];
    for (var j = 0; j < resident_array.length; j += 3) {
      var last = resident_array[j];
      var first = resident_array[j + 1];
      var number = resident_array[j + 2];
      if (last) {
        var bold_start_stop = [];
        var total = length_all(resident_text_array);
        bold_start_stop.push(total);
        bold_start_stop.push(total + last.length);
        resident_bold.push(bold_start_stop);
        resident_text_array.push(last)
      } 
      if (first) {
        if (number) {
          var name_num = first + ' - ' + number;
          resident_text_array.push(name_num)
        }
        else {
          resident_text_array.push(first)
        }
      } else {
        if (number) {
          resident_text_array.push(number)
        }
      }
    }
    var value = SpreadsheetApp.newRichTextValue();
    var resident_text = 'Some text';
//    var resident_text = resident_text_array.join(String.fromCharCode(10));
//    var resident_text = resident_text_array.join(' ');
    value.setText(resident_text);
//    for (start_stop of resident_bold) {  
//      value.setTextStyle(start_stop[0], start_stop[1], bold);
//    }
    value.build();
//    resident_cell.setValue('text');
    resident_cell.setRichTextValue(value);
    Logger.log(resident_text_array);
    resident_count += 1;
  }
  Logger.log(address_array);
}

function length_all(resident_text_array){
  var total = 0;
    for (each of resident_text_array) {
      total = total + each.length;
    }
  return total;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM