چطور با استفاده از جاوا اسکریپت، از اطلاعات جدول HTML خروجی اکسل بگیریم؟
احسان

نویسنده

  • 1399/11/12
  • 0
  • 145
3 سال پیش| طراحی وب

چطور با استفاده از جاوا اسکریپت، از اطلاعات جدول HTML خروجی اکسل بگیریم؟

چطور با استفاده از جاوا اسکریپت، از اطلاعات جدول HTML خروجی اکسل بگیریم؟

برای گرفتن خروجی اکسل از اطلاعات دیتابیس، راه‌های مختلفی وجود دارد. یکی از راه‌ها این است که به طور مستقیم از دیتابیس داده‌ها را Fetch و خروجی اکسل بگیریم.

راه دیگر این است که از اطلاعات نمایش داده شده در جدول HTML که از دیتابیس استخراج شده، خروجی خود را در قالب اکسل تهیه کنیم که این کار بسیار ساده است.

function exportTableToExcel(tableID, filename = ''){
    var downloadLink;
    var dataType = 'application/vnd.ms-excel';
    var tableSelect = document.getElementById(tableID);
    var tableHTML = tableSelect.outerHTML.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();
    }
}

فانکشن فوق را در تگ script و در صفحه‌ی مورد نظر قرار می‌دهیم. این فانکشن دو ورودی دریافت می‌کند. tableID و filename که اختیاری است و نام خروجی را مشخص می‌کند.

به جدول مورد نظرمان id با عنوان tableID را تخصیص می‌دهیم:

<table id="tblData">
    <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Country</th>
    </tr>
    <tr>
        <td>Ehsan Razavi</td>
        <td>[email protected]</td>
        <td>INDIA</td>
    </tr>
    <tr>
        <td>Hamid Ali</td>
        <td>[email protected]</td>
        <td>INDIA</td>
    </tr>
    <tr>
        <td>Ahmad Zarei</td>
        <td>[email protected]</td>
        <td>IRAN</td>
    </tr>
</table>

برای ایجاد خروجی هم کافی است یک button تعبیه کرده و فانکشن را در آن فراخوانی کنیم:

<button onclick="exportTableToExcel('tblData')">Export</button>

در بالا پارامتر دوم را به تابع پاس ندادم و نام پیش‌فرض در فانکشن به فایل خروجی تخصیص داده می‌شود. اما اگر بخواهم نام فایل با نام دلخواه من ذخیره شود، کافی است پارامتر دوم را به فانکشن بدهم و کار تمام است و خروجی در قالب اکسل با نام file-name ذخیره خواهد شد:

<button onclick="exportTableToExcel('tblData', 'file-name')">Export</button>

نکته: این خروجی با محتوای فارسی یا به عبارتی یونیکد utf-8 سازگاری دارد.

منبع اصلی این آموزش وبسایت codexworld می‌باشد.

 

به‌روز رسانی: 1403/7/22
توی وبسایتم سعی می‌کنم محتوایی که تصور کنم ارزشمنده و به بقیه کمکی می‌کنه رو منتشر کنم. امیدوارم از مطالب وبسایت بتونید استفاده کنید و به کارتون بیاد. در ضمن اگه پروژه‌ی تحت وبی دارید که نیاز به برنامه‌نویسی و اجرا داره، می‌تونید با شماره انتهای صفحه با من تماس بگیرید تا در موردش با هم صحبت کنیم.


دیدگاه کاربران

ثبت دیدگاه

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند*