【问题标题】:How do I make copy of spreadsheet and save it to specified folder?如何制作电子表格副本并将其保存到指定文件夹?
【发布时间】:2023-04-01 21:27:01
【问题描述】:

我正在使用 Google 应用脚本。我正在尝试:

  1. 制作电子表格的副本
  2. 为副本指定一个特定的文件名,然后
  3. 将其保存到特定文件夹。
  4. 撤消对主工作表所做的更改

我们希望使用 Google 表格为我们公司开具发票。我们通过 excel 做到了这一点,但想改用谷歌。我正在使用以下代码,但实际上并没有重命名文件。如果可能,我还想添加创建副本的当前日期。 **我对编码一无所知,但能够拼凑一些东西,让我们的夫妻公司更容易。

function saveAsSpreadsheet(){ 
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var range = sheet.getRange('Carolina Fireworks Order Form!C8');
  sheet.setNamedRange('CustomerName', range);
  var TestRange = sheet.getRangeByName('Carolina Fireworks Order Form!C8').getValues(); 
  Logger.log(TestRange); 
  var destFolder = DriveApp.getFolderById("1UdK90fEs3gkP4KZuUbmZbvvyVAW5ZMGw"); 
  DriveApp.getFileById(sheet.getId()).makeCopy('TestRange', destFolder); 
}

【问题讨论】:

    标签: google-apps-script google-sheets google-drive-api


    【解决方案1】:

    尝试添加如下内容:

      const ds = Utilities.formatDate(new Date(),SpreadsheetApp.getActive().getSpreadsheetTimeZone(),"E MMM dd, yyyy HH:mm:ss");
      let name = SpreadsheetApp.getActiveSheet().getRange('C8').getValue();
      DriveApp.getFileById(sheet.getId()).makeCopy('TestRange', destFolder).setName(`${name}_${ds}`); 
    

    【讨论】:

    • 无论如何要为 c8 中的值命名吗?我在 C8 中有客户名称。我似乎无法改变这一点。日期部分效果很好!
    • 哦,点击屏幕上的按钮后打开该电子表格?
    • 有一种方法可以打开电子表格,但这确实是一种黑客行为,我不想这样做。但我确实将 C8 中的值添加到名称中。
    • 黑客??唔。稍作修改,我就能让它工作。它一直给我一个错误。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多