知识养成了思想,思想同时又在融化知识。这篇文章主要讲述Google Apps脚本 - 复制到现有电子表格相关的知识,希望能为你提供帮助。
我正在尝试使用Google Apps脚本copy()
将我的主电子表格“发布”到输出电子表格,但每次都会获得多个副本而不是替换输出文件。任何人都可以建议一种替换目标电子表格内容的方法,这样我就可以为输出保留相同的文件ID并手动触发“发布”。尝试了copyTo
,但只是制作了多张纸。
主电子表格是一个员工名单,需要能够由多名经理处理,而员工无需看到实时版本。当经理完成更新后,可以将其推送给员工。
编辑:搞定了
function publishRoster() {
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheet = source.getActiveSheet();
var updatedDateTime = sheet.getRange("A1");
var now =Utilities.formatDate(new Date(), "GMT+10:30", "dd/MM/yyyy H:mm")
updatedDateTime.setValue("Last Published " + now);
var sourceName = source.getSheetName();
//var sValues = source.getDataRange().getValues();
var destination = SpreadsheetApp.openById('my-destination-sheet-id-here');
var destinationSheet = destination.getSheetByName(sourceName);
if (destinationSheet == null ) { }
else { destination.deleteSheet(destinationSheet);
}
sheet.copyTo(destination).setName(sourceName);
}
答案
copyTo()
在目标电子表格中创建现有工作表的副本。如果要将更改从特定工作表发布到指定的目标工作表,则可以将数据从源工作表复制到目标工作表,而不是复制整个工作表。[每次复制时,这将创建新工作表]因此,将数据从主表复制/发布到从表的代码如下:
var SOURCEID = 'xxxxxxxxxxxxx';
//put your source spreadsheet id here
var SOURCESHEETNAME = 'XXXXX';
//put your source sheet name here
var DESTINATIONID = 'xxxxxxxxxxxxx';
//put your destination spreadsheet id here
var DESTINATIONSHEETNAME = 'XXXXX';
//put your destination sheet name herevar data = https://www.songbingjia.com/android/SpreadsheetApp.openById(SOURCEID).getSheetByName(SOURCESHEETNAME).getDataRange().getValues();
SpreadsheetApp.openById(DESTINATIONID).getSheetByName(DESTINATIONSHEETNAME).clear();
//This line is to clear the existing data in destination.
SpreadsheetApp.openById(DESTINATIONID).getSheetByName(DESTINATIONSHEETNAME).getRange(1, 1, data.length;
data[0].length).setValues(data);
//data.length = no. of rows in source
//data[0].length = no. of columns in source
var now =Utilities.formatDate(new Date(),"GMT+10:30", "dd/MM/yyyy H:mm");
SpreadsheetApp.openById(DESTINATIONID).getSheetByName(DESTINATIONSHEETNAME).getRange("A1").setValue("Last Published " + now);
【Google Apps脚本 - 复制到现有电子表格】这不是经过测试的代码,如果出现任何问题,请告诉我,我很乐意为您提供帮助。谢谢
推荐阅读
- 在appengine-web.xml中显示“URI未注册”的Android Studio lint()
- 带有Firebase的Google App Engine-无法添加依赖项
- 差异b / w在AsyncTask Android中取消(true)和取消(false)
- 如何取消Android中的AsyncTask()
- 为什么我用AsyncTask获取android.os.NetworkOnMainThreadException()
- 在Android中如何从Asynctask接收字符串()
- Android SDK AsyncTask doInBackground未运行(子类)
- Android Media Player(开始调用状态4错误(-38,0))
- Android AsyncTask在完成工作后返回值