google-apps-script - RangecopyFormat(仅限)使用谷歌脚本从一个电子表格到另一个电子表格
问题描述
我一直在寻找几天来完成这项工作,但没有成功。我有多个用户使用不同的电子表格,这些电子表格看起来相同,但具有不同的 ID 和安全性。如果我对我的基本工作表进行格式更改,我需要从那里提取新格式并将其分发给所有用户工作表,以便我全面保持一致。
*不想复制值 *不想将工作表复制到“复制工作表”,然后删除并重命名工作表
解决方案
可能的解决方案:
您可以使用 Sheets API 从一个电子表格获取格式并更新另一个电子表格。
流动:
- 用于
Spreadsheets.get
获取源格式 - 使用
updateCells
batchUpdate 请求更新另一个具有源格式的电子表格
示例脚本:
function copyFormatFromSpreadsheetToSpreadsheet() {
var sourceSsId = SpreadsheetApp.getActiveSpreadsheet().getId(),
destSsId = '##destSpreadsheetIdHere##',
sourceRng = 'Sheet1!A1:B4',
destRng = {
//Must be of same dimensions as sourceRng
//Represents Sheet1!B1:C4
sheetId: 123456789, //use 9 digit GridId
startRowIndex: 0,
endRowIndex: 4, //end exclusive
startColumnIndex: 1,
endColumnIndex: 3,
};
/*Get Format of Source Spreadsheet*/
var rowData = Sheets.Spreadsheets.get(sourceSsId, {
ranges: sourceRng,
fields: 'sheets.data.rowData.values.userEnteredFormat',
}).sheets[0].data[0].rowData;
/*Copy Format to Destination Spreadsheet*/
var request = {
requests: [
{
updateCells: {
rows: rowData,
fields: 'userEnteredFormat',
range: destRng,
},
},
],
};
Sheets.Spreadsheets.batchUpdate(request, destSsId);
}
参考:
推荐阅读
- javascript - 2 个对象中的 2 个值相等但在比较时仍计算为不相等
- python - Kivy 安排 remove_widget 的最佳方式
- javascript - 根据选定的日期和周末在输入中显示文本/数字
- java - 扫描仪命中空行抛出 ArrayIndexOutOfBoundsException
- javascript - 当我点击 Instagram 的链接时,为什么我无法在应用内浏览器中禁用滚动?
- python - 如何在pygame中获得两个向量之间的角度?
- javascript - 使用 Vanilla JS 检测对 @page 的支持
- rust - TryFrom<&[u8]> 特征绑定在特征中
- html - 如何仅使用 html5 创建切换元素
- javascript - 没有从 intlTelInput 输入中获取国家/地区代码