تبدیل آرایه جاوا اسکریپت به اکسل array of objects into Excel
قبلا در فرازگر مقاله ای منتشر کرده بودیم با عنوان تبدیل جدول Html به اکسل که با استفبال خوبی مواجه شد اما در این مقاله می خواهیم شما را با نحوه تبدیل آرایه جاوا اسکریپت به اکسل array of objects into Excel آشنا کنیم که با کمی خلاقیت از کدهای قبلی بست داده شده است.
در کجا تبدیل آرایه جاوا اسکریپت به اکسل نیاز داریم؟
فرض کنید در صفحات شما گزارشاتی بصورت نمودار نمایش داده شده است و می خواهید کاربر نقاط x و y نمودار را بصورت فایل اکسل دریافت کند تا بعدا بتواند از طریق آن نمودارش را در فایل اکسل ذخیر کند. یک راه ساده آن بود که جدول نقاط را در همان صفحه نمایش دهیم اما به این شکل صفحه ما بسیار شلوغ می شود پس بهتر است یک دکمه در زیر نمودار قرار دهیم تا به آسانی کاربر آن را دانلود کند.
تابع Array of Objects into Excel
function Exparr(){ var rows = [{"firstName":"John", "last Name":"Doe", "age":"46"}, {"firstName":"James", "last Name":"Blanc", "age":"24"}, {"firstName":"taha", "last Name":"tabibzadeh", "age":"32"}]; var html = '<table>'; html += '<tr>'; for( var j in rows[0] ) { html += '<th>' + j + '</th>'; } html += '</tr>'; for( var i = 0; i < rows.length; i++) { html += '<tr>'; for( var j in rows[i] ) { html += '<td>' + rows[i][j] + '</td>'; } html += '</tr>'; } html += '</table>'; document.getElementById('container').innerHTML = html; exportTableToExcel(html, filename = 'testw'); }
- در خط 3 آرایه ای از آبجکت ها را نوشتیم که قرار است آن را در فایل اکسل دریافت کنیم.
- در خطوط بعدی با استفاده از دو حلقه آن را به جدولی از Html تبدیل کردیم، اما قرار نیست آن را نمایش دهیم.
- در خط آخر تابع exportTableToExcel را صدا زدیم و جدولمان را به آن پاس دادیم.
- این همان تابع مقاله قبل است که اینجا بدون نمایش جدول مقدار را به آن پاس دادیم.
تابع exportTableToExcel
function exportTableToExcel(tableID, filename = ''){ var downloadLink; var dataType = 'application/vnd.ms-excel'; //var tableSelect = document.getElementById(tableID); //var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20'); //var tableSelect = tableID; var tableHTML = tableID.replace(/ /g, '%20'); // Specify file name filename = filename?filename+'.xls':'excel_data.xls'; // Create download link element downloadLink = document.createElement("a"); document.body.appendChild(downloadLink); if(navigator.msSaveOrOpenBlob){ var blob = new Blob(['\ufeff', tableHTML], { type: dataType }); navigator.msSaveOrOpenBlob( blob, filename); }else{ // Create a link to the file downloadLink.href = 'data:' + dataType + ', ' + tableHTML; // Setting the file name downloadLink.download = filename; //triggering the function downloadLink.click(); } }
- اینجا کمی تابع را دستکاری کردیم. و قسمت tableSelect آن را کامنت کردیم.
حال نتیجه را مشاهده کنید:
مشاهده نتیجه
مقاله پیشنهادی :