Вы можете использовать встроенный метод Utilities.parseCsv()
для преобразования данных CSV в таблицу.
var table = Utilities.parseCsv(unZip[0].getDataAsString());
Затем запишите это в электронную таблицу, используя Range.setValues()
. Очень простой способ добавить данные к существующему листу - использовать Sheet.getLastRow()
при определении диапазона .
function grabAttachments(){
var label = GmailApp.getUserLabelByName("mylabel"); // The label we are trying to find
var threads = label.getThreads(); // grabs all the mails containing that label
var messages = threads[0].getMessages();
var attachType = messages[0].getAttachments(); //assigns attachment array to value
//Logger.log(attachType[0].getName()); //Logs Gets Attachments Name
attachType[0].getContentType();
var tozip = attachType[0].setContentTypeFromExtension(); // sets the content type based on the extension.
var unZip = Utilities.unzip(tozip); //assigns the unzipped file to a new variable
Logger.log(unZip[0].getContentType()); // logs the content type from the unzipped value
// Parse the CSV data and write to spreadsheet
var table = Utilities.parseCsv(unZip[0].getDataAsString());
var sheet = SpreadsheetApp.getActive().getSheetByName("Sheet1"); // Assuming a container-bound script
sheet.getRange(
startRow = sheet.getLastRow() + 1, // Last row has content, so write on the next row
startColumn = 1, // Start printing in Column A
numColumns = table.length,
numRows = table[0].length
).setValues(table);
}
Если вы не используете сценарий с привязкой к контейнеру , вы не сможете использовать SpreadheetApp.getActive()
, поэтому вам нужно будет использовать либо SpreadsheetApp.openById()
или SpreadsheetApp.openByUrl()
.