I want to download the file in .xlsx format.Previously I have done this to download csv file. But now I need to change the file format to .xlsx. If I can convert to csv file to xlsx format using a library, it is also fine. There's a data just like
{"device_token":"ABC1234222","device_code":"1234567890","product_name":"DDDDD","domain_name":"SSS"}
So If I use comma(,) as a delimiter this data separated into parts. But I need to put this data into one cell. Anyway to do this.
I have added the code in below
if(response.result.tripDetails.length != 0 || response.result.requestedData.length != 0) {
let rows1 = [
["Trip ID", "Trip", "Country", "Add Date Time GMT", "Add Date Time Local", "Remove Date Time GMT", "Remove Date Time Local","Create Date"]
];
let rows2 = [
["Request", "Local Time", "GMT Time", "Created Date"]
];
response.result.tripDetails.forEach(function (locationTrackingTripData) {
let row = [locationTrackingTripData.tripId, locationTrackingTripData.trip, locationTrackingTripData.country, locationTrackingTripData.addDateTimeGMT, locationTrackingTripData.addDateTimeLocal, locationTrackingTripData.removeDateTimeGMT, locationTrackingTripData.removeDateTimeLocal, locationTrackingTripData.createdDate];
rows1.push(row);
});
response.result.requestedData.forEach(function (locationTrackingRequestedData) {
let row = [locationTrackingRequestedData.request, locationTrackingRequestedData.localTime, locationTrackingRequestedData.GMTTime, locationTrackingRequestedData.createdDate];
rows2.push(row);
});
let excelContent = "data:application/vnd.ms-excel" + rows1.map(e => e.join(",")).join("\n") +('\n\n')+ rows2.map(e => e.join(",")).join("\n");
var encodedUri = encodeURI(excelContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "locationTrackingDetails.csv");
document.body.appendChild(link);
link.click();
}
Hope your support to solve this.
I solved my issue. So think to share my answer.
I replace the "
from "\
. I'm getting data as a dynamic one.
var req = {"device_token":"ABC1234222","device_code":"1234567890","product_name":"DDDDD","domain_name":"SSS"}
let requestCol = "\"" + req.replace(/\"/g,'\"\"') + "\"";
whole code
if(response.result.tripDetails.length != 0 || response.result.requestedData.length != 0) {
let rows1 = [
["Trip ID", "Trip", "Country", "Add Date Time GMT", "Add Date Time Local", "Remove Date Time GMT", "Remove Date Time Local","Create Date"]
];
let rows2 = [
["Request", "Local Time", "GMT Time", "Created Date"]
];
response.result.tripDetails.forEach(function (locationTrackingTripData) {
let row = [locationTrackingTripData.tripId, locationTrackingTripData.trip, locationTrackingTripData.country, locationTrackingTripData.addDateTimeGMT, locationTrackingTripData.addDateTimeLocal, locationTrackingTripData.removeDateTimeGMT, locationTrackingTripData.removeDateTimeLocal, locationTrackingTripData.createdDate];
rows1.push(row);
});
response.result.requestedData.forEach(function (locationTrackingRequestedData) {
let requestCol = "\"" + locationTrackingRequestedData.request.replace(/\"/g,'\"\"') + "\"";
let row = [requestCol, locationTrackingRequestedData.localTime, locationTrackingRequestedData.GMTTime, locationTrackingRequestedData.createdDate];
rows2.push(row);
});
let excelContent = "data:application/vnd.ms-excel" + rows1.map(e => e.join(",")).join("\n") +('\n\n')+ rows2.map(e => e.join(",")).join("\n");
var encodedUri = encodeURI(excelContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "locationTrackingDetails.xlsx");
document.body.appendChild(link);
link.click();
}
Instead of above way, We can use this method also. We can replace ,
from |
. So we can get the whole line without breaking the formatting.
let requestCol = req.replace(/\,/g,'|');
{"device_token":"ABC1234222"|"device_code":"1234567890"|"product_name":"DDDDD"|"domain_name":"SSS"}