تبدیل آرایه جاوا اسکریپت به اکسل array of objects into Excel

قبلا در فرازگر مقاله ای منتشر کرده بودیم با عنوان  تبدیل جدول Html به اکسل که با استفبال خوبی مواجه شد اما در این مقاله می خواهیم شما را با نحوه تبدیل آرایه جاوا اسکریپت به اکسل array of objects into Excel آشنا کنیم که با کمی خلاقیت از کدهای قبلی بست داده شده است.

در کجا تبدیل آرایه جاوا اسکریپت به اکسل نیاز داریم؟

فرض کنید در صفحات شما گزارشاتی بصورت نمودار نمایش داده شده است و می خواهید کاربر نقاط x و y نمودار را بصورت فایل اکسل دریافت کند تا بعدا بتواند از طریق آن نمودارش را در فایل اکسل ذخیر کند. یک راه ساده آن بود که جدول نقاط را در همان صفحه نمایش دهیم اما به این شکل صفحه ما بسیار شلوغ می شود پس بهتر است یک دکمه در زیر نمودار قرار دهیم تا به آسانی کاربر آن را دانلود کند.

تبدیل آرایه جاوا اسکریپت به اکسل array of objects into Excel

تابع 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 آن را کامنت کردیم.

حال نتیجه را مشاهده کنید:

 

مشاهده نتیجه
 

مقاله پیشنهادی :

تبدیل جدول Html به اکسل

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *