繁体   English   中英

在上载时自动格式化Google表格

[英]Auto-Format Google Sheet on Upload

我有一个Excel文件,我每周都会上传并自动将其转换为Google工作表。 该文件的布局始终相同,只是日期不同,我希望每次上传时都以相同的方式自动设置格式。 我可以轻松创建一个宏,但是该宏仅在当前工作表中有效。 我希望宏可以处理我上传到此文件夹的所有文件。 这可能吗? 我尝试将脚本发布到Web应用程序和加载项中,但是它们不起作用。

谢谢。 下面是脚本:

/** @OnlyCurrentDoc */

function ScheduleFormat() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
  spreadsheet.getActiveRangeList().setFontSize(11);
  spreadsheet.getActiveSheet().setFrozenColumns(0);
  spreadsheet.getRange('1:1').activate();
  spreadsheet.getActiveRangeList().setFontSize(12);
  sheet = spreadsheet.getActiveSheet();
  sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
  spreadsheet.getActiveRangeList().setFontColor(null);
  spreadsheet.getRange('B:C').activate();
  spreadsheet.setCurrentCell(spreadsheet.getRange('C1'));
  spreadsheet.getActiveSheet().deleteColumns(spreadsheet.getActiveRange().getColumn(), spreadsheet.getActiveRange().getNumColumns());
  spreadsheet.getRange('C2').activate();
  spreadsheet.getActiveSheet().setColumnWidth(2, 89);
  spreadsheet.getActiveSheet().setColumnWidth(2, 103);
  spreadsheet.getRange('C2:I22').activate();
  spreadsheet.getActiveRangeList().setBorder(true, true, true, true, true, true, '#000000', SpreadsheetApp.BorderStyle.SOLID);
  spreadsheet.getRange('23:24').activate();
  spreadsheet.setCurrentCell(spreadsheet.getRange('A24'));
  spreadsheet.getActiveSheet().deleteRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());
  spreadsheet.getRange('17:17').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
  spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange('10:10').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
  spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRangeList(['10:10', '18:18']).activate()
  .clearFormat();
  spreadsheet.getActiveSheet().setRowHeight(10, 13);
  spreadsheet.getActiveSheet().setRowHeight(18, 13);
  spreadsheet.getRange('G6').activate();
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM