Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script G.A.S代码将从google工作表生成的pdf仅限于包含数据的行_Google Apps Script_Pdf Generation_Email Attachments - Fatal编程技术网

Google apps script G.A.S代码将从google工作表生成的pdf仅限于包含数据的行

Google apps script G.A.S代码将从google工作表生成的pdf仅限于包含数据的行,google-apps-script,pdf-generation,email-attachments,Google Apps Script,Pdf Generation,Email Attachments,我使用下面的谷歌脚本代码生成一份谷歌工作表的pdf,并通过电子邮件发送。除了生成的pdf包含太多空白页面外,代码工作正常。如何将生成的pdf限制为仅包含数据的图纸行 function emailReport() { readyForExport(); var spreadsheet = SpreadsheetApp.getActive(); var subject = spreadsheet.getRange("U1:U1").getValues(); var emailTo =

我使用下面的谷歌脚本代码生成一份谷歌工作表的pdf,并通过电子邮件发送。除了生成的pdf包含太多空白页面外,代码工作正常。如何将生成的pdf限制为仅包含数据的图纸行

function emailReport() {
  readyForExport();
  var spreadsheet = SpreadsheetApp.getActive();
  var subject = spreadsheet.getRange("U1:U1").getValues();
  var emailTo = spreadsheet.getRange("V1:V1").getValues();
  var message = spreadsheet.getRange("W1:W1").getValues();
  var fileName = spreadsheet.getRange("X1:X1").getValues();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName("Students"));
  var pdf = DriveApp.getFileById(spreadsheet.getId()).getAs('application/pdf').getBytes();
  var attach = {fileName:fileName[0][0],content:pdf, mimeType:'application/pdf'};
  MailApp.sendEmail(emailTo, subject, message, {attachments:[attach]});
};

提前感谢。

我终于成功地编写了一段代码,通过首先删除工作表中的空行,可以成功删除pdf附件中的空页。:)

我有意在代码的结尾只留下一个空行,以向用户表明后续行中不存在其他数据

我不得不解决一些bug,因为代码会根据页面上已经存在的空行数而出错。最后,我设法处理了所有的bug,并编写了一个代码,然后流畅地运行,并考虑了所有异常情况。:)

代码如下:

  var firstDelRow = spreadsheet.getSheetByName('Students').getLastRow()+2;
  var lastDelRow = spreadsheet.getSheetByName('Students').getMaxRows();
  var rowDif = lastDelRow-firstDelRow+1;

  if (rowDif == -1) {
  spreadsheet.getSheetByName('Students').insertRowAfter(firstDelRow-2);
  };

  if (rowDif >= 1) {

  spreadsheet.getSheetByName('Students').deleteRows(firstDelRow, rowDif);
  };

创建一个没有空白单元格的临时工作表,发送此工作表,然后将其删除。当然,所有这些都是通过脚本实现的;)或者只删除学生表上的空白行/列。thanks@Sergeinsas你能帮我查一下密码吗?我是个新手。谢谢,请分享一个没有敏感数据的电子表格示例,让它更简单,我将展示一个示例脚本。