내 이메일에서 XLS 첨부 파일을 가져 오는 다음 스크립트가 있습니다.
현재, 지정된 시트 이름으로 가져옵니다 (아래 예에서는 "xxxx").
대신 스크립트가 실행되기 전날을 기준으로 시트 이름으로 가져오고 싶습니다 (전날 데이터를 DD / MM / YY로보고하므로).
function ImportXLSFromGmail_Stats() {
var sheetName = "xxxx";
var threads = GmailApp.search("from:[email protected] subject:Email Subject");
var messages = threads[0].getMessages();
var message = messages[messages.length - 1];
var attachment = message.getAttachments()[0];
attachment.setContentTypeFromExtension();
var data = [];
(attachment.getContentType() == MimeType.MICROSOFT_EXCEL || attachment.getContentType() == MimeType.MICROSOFT_EXCEL_LEGACY)
var tempFile = Drive.Files.insert({title: "temp_Availability", mimeType: MimeType.GOOGLE_SHEETS}, attachment).id;
data = SpreadsheetApp.openById(tempFile).getSheets()[0].getDataRange().getValues();
Drive.Files.trash(tempFile);
if (data.length > 0) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}
}
당신이 원하는 :
어제 날짜를 가져옵니다.
const date = new Date();
date.setDate(date.getDate() - 1);
형식을 DD/MM/YY
지정하고 다음에 할당하십시오 sheetName
.
const sheetName = Utilities.formatDate(date, timezone, "dd/MM/YY")
이 이름의 시트가 있는지 확인하고 그렇지 않으면 만듭니다.
const sheets = ss.getSheets().map(sh=>sh.getName());
if(!sheets.includes(sheetName)){
ss.insertSheet(sheetName);
};
function ImportXLSFromGmail_Stats() {
const ss = SpreadsheetApp.getActive();
const date = new Date();
const timezone = ss.getSpreadsheetTimeZone();
date.setDate(date.getDate() - 1);
const sheetName = Utilities.formatDate(date, timezone, "dd/MM/YY"); // logs 04/02/21
const sheets = ss.getSheets().map(sh=>sh.getName());
if(!sheets.includes(sheetName)){
ss.insertSheet(sheetName);
};
//
// rest of your code
//
}
참조 :
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다