google-apps-script - 谷歌应用脚本 - 将最新文件导入谷歌表格
问题描述
我有以下代码读取附加在我的 Gmail 标签中的文件
function importCSVGMAIL() {
//gets first(latest) message with set label
var threads = GmailApp.getUserLabelByName('Incremental Sales').getThreads(0,1);
var message = threads[0].getMessages()[0];
var attachment = message.getAttachments()[0];
// Is the attachment a CSV file
var ss = SpreadsheetApp.getActive();
var sh = ss.getSheetByName("CALLER");
//parses content of csv to array
attachment.setContentTypeFromExtension();
if (attachment.getContentType() === "text/csv") {
var sheet = SpreadsheetApp.getActiveSheet();
var csvData = Utilities.parseCsv(attachment.getDataAsString(), ",");
// Remember to clear the content of the sheet before importing new data
sh.clearContents().clearFormats();
//pastes array to sheet
sh.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}
}
现在的问题是,当我们的内部服务器将数据发送到 Gmail 时(我对此有一个预定的报告),标签收件箱以最旧 - 最新的顺序显示这些文件。然后这段代码将解析收件箱中的第一个项目(这是最旧的......不是最新的!)
有没有办法通过更改下面的代码来调用“最新”文件?
解决方案
就像 Yaakov 说的......另外,如果您正在寻找最新的线程,您可能想要获取多个线程:
// Replace this
var threads = GmailApp.getUserLabelByName('Incremental Sales').getThreads(0,1);
// With this
var threads = GmailApp.getUserLabelByName('Incremental Sales').getThreads();
推荐阅读
- python - JSONDecodeError Django Javascript JSON
- angular - NgRx 在调度动作后执行动作(异步)
- c++ - 字母金字塔 C++
- json - 比较数组中前一个元素与其后一个元素之间的值
- javascript - React 'Link to' 扭曲了我的 CSS 样式。有什么办法解决吗?
- c# - 将文字字符串转换为常规字符串
- scala - 即使导入了 ScalaTest,FunSuite 也丢失了
- python-3.x - 如何在 Python3 正则表达式中使用一个模式匹配具有不同位置的不同组
- python - flasgger:在 .py 模块中引用棉花糖模式
- r - R:有没有办法在两个数据帧列之间进行部分匹配的 Vlookup