Google Sheet две строки ячейки с getValue () - PullRequest
0 голосов
/ 11 мая 2018

Я сделал небольшой скрипт для отправки текста по электронной почте из электронной таблицы.Я получил текст ячеек с помощью .getValue (), но когда в моих ячейках есть две или более строк (Ctrl + enter), он просто помещает их в одну строку в таблице, которую я отправляю в электронном письме.

Я хотел бы знать, есть ли способ сохранить форматирование GoogheSheet при извлечении его с помощью .getValue () или мне нужно повторно обработать строку, и если да, то как мне сделать, чтобы любой RE обнаружил новую строку ....?

Вот код, который я использовал для извлечения ячеек:

function readInList(debR, col){
  /* Documentation
  La routine lit chaque cellule d'un range de 1 col par 5 row et stock les valeurs dans une liste au format texte.
  retourne cette liste
  */
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");

  var stopRow = debR + 5;
  var opCol = col;
  var rangeList = [];
  var i;
  for (i=debR; i < stopRow; i++){
    var cell = sheet.getRange(i, col);
    rangeList.push(cell.getValue());
  }
  return (rangeList);
}

1 Ответ

0 голосов
/ 11 мая 2018

Итак, Почта отправляет восстановленную таблицу с текстом, и все это вставляется в html Почту:

function weeklyReport() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  var rowMonth = [31,28,31,30,31,30,31,30,31,30,31,30];
  
  
  
  var today = new Date();
  var todayYear = today.getYear();
  var todayMonth = today.getMonth();
  var todayDate = today.getDate();
  
  // Calc the number of rows depending of months that have passed
  var rowCell=0;
  var i = 0;
  do {
    rowCell+=rowMonth[i];
    i++;
  } while (i < todayMonth);
  rowCell+=3 + todayDate
  
  var range1 = readInListD(rowCell-4, 1);
  var range2 = readInList(rowCell-4, 4);
  
  var subject = 'Weekly report Clem Michard';
  var greetings = 'Hi, ';
  var sentence = 'please find my weekly report below:';
  var table = textToTable(range1, range2);
  var signature = 'Clem';
  var tables = today;
  var cmEmail= '***';
  var owaEmail = '***';
  var headEmail = '***';
  
  var htmlBodyA =
        ""+
          ""+
            ""+
              "table, th, td {"+
                "border: 1px solid black;"+
                "border-collapse: collapse;"+
              "}"+
            "" +
          ""+
          ""+
            "" + greetings + ""+
            "" + sentence + ""+
            "" + table + "
"+ "

" + подпись + "

" + "" + ""; / * - Посланник сообщений от участников и по электронной почте Valide - * / MailApp.sendEmail ({ to: headEmail, скрытая копия: cmEmail, предмет: предмет, имя: "Климент Михар", replyTo: cmEmail, htmlBody: htmlBodyA}) }

И используйте это для составления таблицы:

function textToTable(col1, col2){
  /*
  This method converts a list of str into an HTML table
  
  takes 2 lists to build a table.
  */
  var listC1, listC2, text, lLen, i, j;

  listC1 = col1;
  listC2 = col2;
  lLen = listC1.length;
  text = "<table><tr><th>" + "Date" + "</th><th>" + "Report" + "</th></tr>";
  for (i = 0; i < lLen; i++){
    text += "<tr><td>" + listC1[i] + "</td><td>" + listC2[i] + "</td></tr>";
  }
  text += "</table>";
  
  return(text);
}
...