【问题标题】:Complex Transfer of Data from Email Attachment to Template从电子邮件附件到模板的复杂数据传输
【发布时间】:2020-02-25 00:43:42
【问题描述】:

我正在为我的工作开展一个复杂的项目,如果你能提供任何建议,我将不胜感激。

基本上这是我想做的:

  1. 过滤来自特定人员的电子邮件
  2. 将这些电子邮件的附件(它们是 excel 格式)下载到云端硬盘中的特定文件夹(称为“输入”)
  3. 将这些电子表格中的数据提取到另一个电子表格(主模板)的特定单元格中,我在云端硬盘的另一部分拥有(可能超过一百个单元格值传输)
  4. 自动删除驱动器中下载的附件,为明天下载的下一个(同名)文件做准备。
  5. 一旦母版填满,复制整个电子表格,将其重命名为今天的日期,然后擦拭母版以冲洗并在明天重复相同的过程。

所以现在我只是在概念上处理这个问题,这是我正在考虑做的基本蓝图,但非常感谢您的意见:

  1. 使用 Gmail 的标签系统过滤电子邮件

  2. 使用此方法下载邮件:https://www.splitbrain.org/blog/2017-01/30-save_gmail_attachments_to_google_drive

  3. 在“Input”文件夹(称为“Master Array”)中创建一个永久电子表格,以排列下载电子表格及其各自子表格中的所有数据-床单。这里的目标是让一个常量 File_ID 容纳所有数据。

  4. Master Array 中创建一个 search if array 函数,该函数将按其各自的名称搜索正确的文件,并将其数据排列在正确的子表中Master Array 电子表格(即如果文件名在“Sales”子表中包含“Company Sales”数组数据)。

  5. ImportRangeQueryVlookup 等“Master Array”电子表格和拉我需要的所有值到 主模板 中的相应单元格,它们需要。

  6. 主模板构建后,我想复制整个电子表格,将其重命名为今天的日期,然后擦除原始文件(为明天的相同功能做好准备)。 (使用谷歌定时器触发器)

  7. 删除驱动器文件夹“输入”中所有下载的电子邮件附件以冲洗并在第二天重复相同的功能。 (使用谷歌计时器触发器)。

我有一些问题:

  1. 有没有更有效的方法来做到这一点?

  2. 将数据从一个电子表格复制到另一个电子表格的最佳方式是什么?是在脚本中更快,还是在主模板的每个单独单元格中作为导入功能?

  3. 我可以使用循环/if 函数将某些单元格拉到 主模板 中的某些工作表,基本上每个工作表名称都有函数,所以说 IF sheetname="Sales" pull另一个电子表格中的单元格 A2 到 b3... 等。

对不起,这很长而且很健壮,只是想看看这是否可以全面完成。感谢您的所有意见,我对表格比较陌生,所以请原谅我的天真。

【问题讨论】:

    标签: arrays google-apps-script google-sheets


    【解决方案1】:

    1) 您可以在检索消息列表时使用搜索查询 [1][2]。

    2) 您可以开发自己的代码来获取邮件列表并使用 GmailApp 类 [3] 获取每封电子邮件的附件。

    3, 4, 5) 您首先需要将 Excel 转换为 Google 表格 [4],以便能够使用 SpreadsheetApp 类 [5] 轻松管理电子表格。

    6) 您可以像这样复制电子表格 [6] 并获取整个数据范围以清除它 [7]。

    7) 使用这个 [8]。

    [1]https://developers.google.com/gmail/api/guides/filtering

    [2]https://support.google.com/mail/answer/7190

    [3]https://developers.google.com/apps-script/reference/gmail/gmail-app

    [4]Converting .xls to google spreadsheet in google apps script

    [5]https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app

    [6]Google Apps Script, copy one spreadsheet to another spreadsheet with formatting

    [7]https://developers.google.com/apps-script/reference/spreadsheet/range#clear()

    [8]https://developers.google.com/apps-script/reference/drive/drive-app#removeFile(File)

    【讨论】:

    • 非常感谢您提供此信息。当我下班回家时,我会经历它:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    相关资源
    最近更新 更多