- Вы хотите преобразовать 2 файла CSV в один файл Excel и отправить электронное письмо, включив преобразованный файл Excel в качестве файла вложения.
- Вы хотите добиться этого с помощью Google Apps Script .
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Поток:
Ход этого примера сценария следующий:
- Извлечение файлов CSV из объект массива
list_attach
. - Создать новую электронную таблицу как временную.
- Поместить данные CSV во временную электронную таблицу путем анализа данных CSV.
- Экспортировать временную таблицу Электронная таблица как блоб формата Excel.
- Удаление временной таблицы. В этом случае он перемещается в поле tra sh.
- Отправка электронного письма, включающего экспортированные данные Excel.
Модифицированный скрипт:
Когда ваш Скрипт изменен, пожалуйста, измените его следующим образом.
С:
MailApp.sendEmail(
emailList,
fileName,
'content',
{
attachments: list_attach,
name: 'Britag Support'
});
Кому:
// --- I added blow script
var tempSpreadsheeet = SpreadsheetApp.create("temp");
for (var i = 0; i < list_attach.length; i++) {
var obj = list_attach[i];
var values = Utilities.parseCsv(obj.content);
var sheet = i == 0 ? tempSpreadsheeet.getSheets()[0].setName(obj.fileName) : tempSpreadsheeet.insertSheet().setName(obj.fileName);
sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
}
SpreadsheetApp.flush();
var tempId = tempSpreadsheeet.getId();
var url = "https://docs.google.com/spreadsheets/export?exportFormat=xlsx&id=" + tempId;
var blob = UrlFetchApp.fetch(url, {headers: {authorization: "Bearer " + ScriptApp.getOAuthToken()}}).getBlob();
blob.setName("sampleFilename.xlsx");
list_attach = [blob];
DriveApp.getFileById(tempId).setTrashed(true);
// ---
MailApp.sendEmail(
emailList,
fileName,
'content',
{
attachments: list_attach,
name: 'Britag Support'
});
Примечание:
- В приведенном выше модифицированном скрипте он предполагает следующие пункты.
csvTextContent1
и csvTextContent2
- данные CSV типа строки. - Номера всех столбцов данных CSV одинаковы.
Если указанные выше точки отличаются от ваших фактических данных, можете ли вы указать значения выборки csvTextContent1
и csvTextContent2
? По этому я хотел бы изменить его.
Ссылки:
Если я неправильно понял ваш вопрос, и это не было направление, которое вы хотите, я прошу прощения.