gpt4 book ai didi

excel - 如何将数据从我的谷歌驱动器中的 xlsx 文件复制到谷歌表格?

转载 作者:行者123 更新时间:2023-12-04 21:19:17 25 4
gpt4 key购买 nike

我在我的谷歌驱动器上保存了一个 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());
}

}

最佳答案

  • 您想将“.xlsx”文件的值复制到现有的 Google 电子表格。
  • 您的 Google 云端硬盘中有“.xlsx”文件。
  • 您想使用 Google Apps 脚本实现此目的。

  • 如果我的理解是正确的,这个答案怎么样?请认为这只是几个可能的答案之一。

    修改点:
  • 为了从“.xlsx”文件转换的 Google 电子表格中检索值,它使用从 Drive.Files.insert() 返回的文件 ID。 .
  • 在您的脚本中,需要声明从“.xlsx”文件复制值并使用它的目标 Google 电子表格。

  • 修改后的脚本:

    当您的脚本被修改时,请进行如下修改。在运行脚本之前,请设置 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
    });

    至:
    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);

    笔记:
  • 在您的问题中,我不确定“.xlsx”文件是否有几张纸以及您要放置这些值的范围。因此,在此修改中,作为示例,转换后的电子表格中第一个选项卡的值被复制到目标电子表格的最后一行。
  • 在这个修改后的脚本中,它假设您已经在 Google 高级服务中启用了 Drive API。

  • 引用:
  • Files: insert
  • openById(id)
  • getSheets()
  • getDataRange()
  • getValues()
  • setValues(values)

  • 如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

    关于excel - 如何将数据从我的谷歌驱动器中的 xlsx 文件复制到谷歌表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59550233/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com