簡體   English   中英

如何在Google工作表中以正確的格式郵寄單元格范圍?

[英]How do I mail cell range with proper format in google sheet?

嗨,這是我的工作表: https : //docs.google.com/spreadsheets/d/1xkTt_1kLyROkUFComi8-NiKyDMan6617C1dA5UqWTSI/edit?usp=sharing

我想使用Google腳本在電子郵件中共享范圍A2:F8。 據我所知,此腳本可以正常工作:

function sendMail(){
 var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var data = sh.getRange("A2:O38").getValues();
  //var htmltable =[];
var TABLEFORMAT = 'cellspacing="2" cellpadding="2" dir="ltr" border="1" style="width:100%;table-layout:fixed;font-size:10pt;font-family:arial,sans,sans-serif;border-collapse:collapse;border:1px solid #ccc;font-weight:normal;color:black;background-color:white;text-align:center;text-decoration:none;font-style:normal;'
var htmltable = '<table ' + TABLEFORMAT +' ">';
for (row = 0; row<data.length; row++){
htmltable += '<tr>';
for (col = 0 ;col<data[row].length; col++){
  if (data[row][col] === "" || 0) {htmltable += '<td>' + 'None' + '</td>';} 
  else
    if (row === 0)  {
      htmltable += '<th>' + data[row][col] + '</th>';
    }
  else {htmltable += '<td>' + data[row][col] + '</td>';}
}
     htmltable += '</tr>';
}
     htmltable += '</table>';
     Logger.log(data);
     Logger.log(htmltable);
MailApp.sendEmail("myemail@gmail.com", 'Daily report','' ,{htmlBody: htmltable})
}

問題是當我收到郵件時,合並的單元格未處於合並狀態。 結果是3列而不是1列。有人可以調整代碼,以便獲得與格式化工作表完全相同的代碼。

我做了一些修改,因為我不想發送任何電子郵件。 而且,如果將表格移到左上角並使用sh.getDataRange(),那么整個表格都將毫無問題。

這是我的修改版本。

function sendSomething(){
 var sh = SpreadsheetApp.getActiveSheet();
 var dataA = sh.getDataRange().getValues();
 var None = '&nbsp;';
 var htmltable ='';
var TABLEFORMAT = 'cellspacing="2" cellpadding="2" dir="ltr" border="1" style="width:100%;table-layout:fixed;font-size:10pt;font-family:arial,sans,sans-serif;border-collapse:collapse;border:1px solid #ccc;font-weight:normal;color:black;background-color:white;text-align:center;text-decoration:none;font-style:normal;'
var htmltable = '<table ' + TABLEFORMAT +' ">';
for (row = 0; row<dataA.length; row++)
{
  htmltable += '<tr>';
  for(col = 0 ;col<dataA[row].length; col++)
  {
    if (dataA[row][col] === "" || 0) 
    {
      htmltable += '<td>' + None + '</td>';
    } 
    else
    if (row === 0)  
    {
      htmltable += '<th>' + dataA[row][col] + '</th>';
    }
    else 
    {
      htmltable += '<td>' + dataA[row][col] + '</td>';
    }
  }
     htmltable += '</tr>';
}
     htmltable += '</table>';
dispStatus('HTML',htmltable,800,500);
}

這是我的顯示例程,已將其合並到您的代碼中。 這只是我的記錄器版本。

function dispStatus(title,html,width,height,modal)
{
  var title = typeof(title) !== 'undefined' ? title : 'No Title Provided';
  var width = typeof(width) !== 'undefined' ? width : 400;
  var height = typeof(height) !== 'undefined' ? height : 300;
  var html = typeof(html) !== 'undefined' ? html : '<p>No html provided.</p>';
  var modal = typeof(modal) !== 'undefined' ? modal : false;
  var htmlOutput = HtmlService
     .createHtmlOutput(html)
     .setWidth(width)
     .setHeight(height);
 if(!modal)
 {
   SpreadsheetApp.getUi().showModelessDialog(htmlOutput, title);
 }
 else
 {
   SpreadsheetApp.getUi().showModalDialog(htmlOutput, title);
 }
} 

您仍然需要格式化日期。 也許您可以使用實用程序,並且如果您想將標頭中的單元格合並在一起,則需要弄清楚哪些單元格應提供colspan =“ 3”。

暫無
暫無

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

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