Я пытаюсь добавить данные в свою таблицу Excel, но они перезаписываются, когда я пытаюсь использовать skipHeader: false, а когда я пытаюсь использовать skipHeader: true, тогда заголовок тоже добавляется. Я хочу, чтобы заголовок пришел только один раз. Мои заголовки должны быть ключевыми значениями ticketNameArr.push . Я хочу, чтобы данные добавлялись каждый раз, когда обещание выполнено без перезаписи предыдущих данных.
var ftp;
for (let i = 0; i < dataJson1.length; i++) {
dir = dataJson1[i]['FTP DIR'];
subfolder = dataJson1[i]['Sub Folder'];
ftpPath = dir + subfolder;
host = dataJson1[i]['FTP IP'];
user = dataJson1[i]['FTP Username'];
password = dataJson1[i]['FTP Password'];
ticketStatus = dataJson1[i]['Status']
console.log("FTP LOCATION:" + ftpPath + "\n" + "HOSTNAME:" + host + "\n" + "USERNAME:" + user + "\n" + "PASSWORD:" + password + "\n")
//Reading the list of directories present in the FTP location
console.log("value of i" + i);
///////////
if (ticketStatus == true) {
if (!ftp) {
ftp = new PromiseFtp();
}
const ftpPromise = ftp.connect({
host: host, user: user,
password: password
}).then(function (serverMessage) {
console.log('Server message: ' + serverMessage)
//console.log("value of i" + i)
return ftp.list(ftpPath);
}).then(function (list) {
console.log('Directory listing:');
var dirList = (list)
console.log(dirList)
console.log("Number of directories:" + dirList.length)
var jsondirString = JSON.stringify(dirList)
var datadirJson1 = JSON.parse(jsondirString)
for (var j = 0; j < dirList.length; j++) {
//console.log(datadirJson1[j]['name'])
ticketName.push(datadirJson1[j]['name'])
//console.log(ftpTime)
ftpTime.push(datadirJson1[j]['date'])
}
return ftp.end();
});
promises.push(ftpPromise)
}//status check ends
}//Loop ends here
Promise.all(promises).then(arrayOfResults => {
console.log(ticketName);
var ticketNameArr = [];
for (let i = 0; i < ticketName.length; i++) {
let ticketNameIs = ticketName[i];
let ftpTimeIs = ftpTime[i]
let ticketDetail = ticketApp(ticketNameIs, ftpTimeIs);
Promise.all(ticketDetail).then(function (values) {
//console.log(values);
ticketNameArr.push({
// FtpTime: values[0].ftpTime,
Date: values[0].ftpTime,
TicketName: ticketNameIs,
//Add Dynamic folder column----
// InputLocationMessage: values[0].inputLocationMessage,
// ResultLocationMessage: values[1].resultLocationMessage,
// TicketStatusInput: values[0].ticketStatusInput,
In_Input_Location: values[0].ticketStatusInput,
// InputModifiedTime: values[0].mtime,
Input_Time: values[0].mtime,
// InputTime: values[0].birthtime,
// TicketStatusResult: values[1].ticketStatusResult,
In_Result_Location: values[1].ticketStatusResult,
// OutputModifiedTime: values[1].mtime,
Result_Time: values[1].mtime,
// OutputTime: values[1].birthtime,
//Add column for comment
//Add Coulm for Status
//Will help in preparing comments
CallAPi: values[3].apiStatus,
ReportStatus: values[3].reportStatus,
Comment: values[4].Comment,
Status: values[5].ticketStatus
// FTPSTATUS: values[0].FTPStatus,
// LogStatus: values[2].logStatus,
// LogCreateTime: values[2].birthtime,
// LogModifiedTime: values[2].mtime,
});
if (ticketNameArr.length == ticketName.length) {
// console.log("-------------TicketNameArr")
// console.log(ticketNameArr)
// ticketXLXSCopy = ticketXLXSCopy.concat(ticketNameArr)
// console.log("-------------In Excel")
// console.log(ticketXLXSCopy)
// var ws = XLSX.utils.json_to_sheet(ticketXLXSCopy)
ws = XLSX.utils.sheet_add_json(ws, ticketNameArr, { origin: 0 });
XLSX.utils.sheet_add_json(ws, ticketNameArr, { skipHeader: false },
{ origin: -1 });
/* Write data starting at A2 */
XLSX.utils.book_append_sheet(wb, ws) // sheetAName is name of Worksheet
XLSX.writeFile(wb, 'DailyTicketSatus.xlsx')
// respond.render('result', { "ticketNameArr": ticketNameArr });
respond.render('index', { "ticketNameArr": ticketNameArr });
}
});
}
})