google-apps-script - 上传时自动格式化 Google 表格
问题描述
我有一个 Excel 文件,我上传并每周自动转换为谷歌表格。该文件始终是相同的布局,只是日期不同,我希望每次上传时都自动以相同的方式格式化。我可以轻松地创建一个宏,但是该宏仅适用于当前工作表。我希望宏能够处理我上传到此文件夹的所有文件。这可能吗?我尝试将脚本发布到 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();
};
解决方案
推荐阅读
- json - 如何在 React Native 的 fetch 方法中从 json 中提取键和值?
- javascript - 使用 PHP 在cropper.js 中发送多个裁剪图像
- python - 为什么双除法在 python 中返回看似“错误”的答案
- asynchronous - 视图与 ObservedObject 不匹配
- node.js - 如何在 Winhost 上安装 PeerJS 服务器?
- electron - 在电子应用程序中有外部文件
- c - Visual Studio“取消引用 NULL 指针”警告
- swift - 在 ios 图表中显示数据
- php - 如何简化这些变量?
- android - Firebase 出错每个提供程序只能设置一次。电话设置了两次