我拼凑了一些不同的脚本来使其工作,但我似乎无法获得正确放入数据的代码。
电子邮件输入:
*Status:*
*Date:* 03/31/2020
*WorkOrder:* 123456-1
*DMSShipDate:* 03/31/2020
*PONumber:* 8675309
*Company:* Test
脚本
var ui = SpreadsheetApp.getUi();
function onOpen(e){
ui.createMenu("Import Email").addItem("Import Email", "getGmailEmails").addToUi();
}
function getGmailEmails(){
if (Session.getActiveUser().getEmail() != "email@gmail.com"){
Browser.msgBox("Please log in as email@gmail.com");
return;
}
var label = GmailApp.getUserLabelByName("ImportMe");
var threads = label.getThreads();
for(var i = threads.length - 1; i >=0; i--){
var messages = threads[i].getMessages();
for (var j = 0; j <messages.length; j++){
var message = messages[j];
extractDetails(message);
GmailApp.markMessageRead(message);
}
threads[i].removeLabel(label);
}
}
function extractDetails(message){
var bodyContents = message.getPlainBody();
var status = bodyContents.match(/\*Status:\*(.*) /);
var dateEntered = bodyContents.match(/\*Date:\*(.*) /);
var workOrder = bodyContents.match(/\*WorkOrder:\*(.*) /);
var dmsShipDate = bodyContents.match(/\*DMSShipDate:\*(.*) /);
var poNum = bodyContents.match(/\*PONumber:\*(.*) /);
var company = bodyContents.match(/\*Company:\*(.*) /);
var activeSheet = SpreadsheetApp.getActiveSheet();
activeSheet.appendRow([status, dateEntered, workOrder, dmsShipDate, poNum, company]);
}
结果:
I get the following in each column:
[Ljava.lang.Object;@488e1851, [Ljava.lang.Object;@5c588720, etc, etc
我尝试过 JSON.Stringify 和 toString() 但似乎没有任何方法能够将数据正确地放入列中。
最佳答案
String.match返回一个数组
。要获取捕获的组,请在该数组中建立索引:
bodyContents.match(/\*Status:\*(.*) /)[1];
关于javascript - Google Sheet导入Ljava.lang.Object错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60953241/