use*_*336 1 excel google-apps-script
我的谷歌驱动器上保存了一个 excel 文件 (.xlsx)。我想将数据从那里复制到我已经创建的谷歌表格文件中的一个选项卡中。我有以下运行的代码。但我不知道如何指定 Google 表格(和标签)来粘贴 excel 数据?
``
function run() {
try {
fileName = fileName || "G:\Shared drives\ExchangeData\DailyVolumes.xlsx";
var excelFile = DriveApp.getFilesByName(fileName).next();
var fileId = excelFile.getId();
var folderId = Drive.Files.get(fileId).parents[0].id;
var blob = excelFile.getBlob();
var resource = {
title: excelFile.getName().replace(/.xlsx?/, ""),
key: fileId
};
Drive.Files.insert(resource, blob, {
convert: true
});
} catch (f) {
Logger.log(f.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
如果我的理解是正确的,这个答案怎么样?请将此视为几种可能的答案之一。
Drive.Files.insert()。当您的脚本被修改时,请进行如下修改。在你运行该脚本,请设定的变量destSpreadsheetId和destSheetName。
fileName = fileName || "G:\Shared drives\ExchangeData\DailyVolumes.xlsx";
var excelFile = DriveApp.getFilesByName(fileName).next();
var fileId = excelFile.getId();
var folderId = Drive.Files.get(fileId).parents[0].id;
var blob = excelFile.getBlob();
var resource = {
title: excelFile.getName().replace(/.xlsx?/, ""),
key: fileId
};
Drive.Files.insert(resource, blob, {
convert: true
});
Run Code Online (Sandbox Code Playgroud)
到:
var destSpreadsheetId = "###"; // Added
var destSheetName = "###"; // Added
fileName = fileName || "G:\Shared drives\ExchangeData\DailyVolumes.xlsx";
var excelFile = DriveApp.getFilesByName(fileName).next();
var fileId = excelFile.getId();
// var folderId = Drive.Files.get(fileId).parents[0].id; // This is not used in your script.
var blob = excelFile.getBlob();
var resource = {title: excelFile.getName().replace(/.xlsx?/, "")}; // Modified
var sourceSpreadsheet = Drive.Files.insert(resource, blob, {convert: true}); // Modified
// Also I added below script.
var sourceSheet = SpreadsheetApp.openById(sourceSpreadsheet.id).getSheets()[0];
var destSheet = SpreadsheetApp.openById(destSpreadsheetId).getSheetByName(destSheetName);
var values = sourceSheet.getDataRange().getValues();
destSheet.getRange(destSheet.getLastRow() + 1, 1, values.length, values[0].length).setValues(values);
Run Code Online (Sandbox Code Playgroud)
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
| 归档时间: |
|
| 查看次数: |
1287 次 |
| 最近记录: |