google-apps-script - 重命名带有“完整工作表”图表的工作表会导致电子表格重新加载
问题描述
谷歌表格允许将图表移动到自己的表格中。谷歌脚本似乎无法重命名这些工作表,但不会导致电子表格崩溃并强制重新加载。
要了解我的意思,试试这个:1)创建新的电子表格并在其中放入一些数据。2)使用数据创建任何类型的图表。3)编辑图表并选择“移动到自己的工作表...” 4)使用以下代码创建一个脚本:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
sheets[1].setName('bob');
}
5) 运行脚本,电子表格崩溃并显示以下消息:“无法加载文件” 6) 重新加载电子表格并注意工作表确实已重命名。
为什么电子表格会崩溃?是否可以在不崩溃的情况下重命名工作表?
解决方案
不幸的是,我找不到坠机的明确原因。但我认为有一种解决方法可以避免崩溃。那么这个解决方法怎么样?在此解决方法中,它使用 Sheets API。要使用 Sheets API,请在 Advanced Google Services 和 API 控制台中启用 Sheets API。关于如何启用它们,请在此处查看。
使用 Sheets API 的示例脚本如下。
示例脚本:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var id = ss.getId();
var sheetId = ss.getSheets()[1].getSheetId();
var resource = {"requests":[{"updateSheetProperties":{"properties":{"sheetId":sheetId,"title":"bob"},"fields":"title"}}]};
Sheets.Spreadsheets.batchUpdate(resource, id);
}
如果这不是你想要的,我很抱歉。
推荐阅读
- powerbi - 在离散数据集上计算 Power BI 中的 MoM 和 YoY
- javascript - 带有错误类型错误的 Angular 12:this.handleError 不是函数
- php - PHP OOP - 如何正确验证输入字段
- coq - 破坏假设:一般情况
- python - 在 TM1 多维数据集中加载数据
- .net-core - Entity Framework Core 无权访问系统表
- cakephp - cakephp 4 在 EventListener 中重定向用户
- azerothcore - 是否可以检查播放器类来过滤八卦菜单?
- vaadin - 是否可以在 Vaadin 14 / Flow 网格中以编程方式设置样式
- time-series - 时间序列模拟(蒙特卡洛)代码