تولید فایل اکسل از محتوای جیسون با کتابخانه xlsx

تعداد بازدید ها : 49 بازدید
 تولید فایل اکسل از محتوای جیسون با کتابخانه xlsx

اگر با پلتفرم Vuejs 3 Vite در حال تولید یک وب اپلیکیشن هستند و مایلید محتویات جدولی را با فرمت اکسل در خروجی ذخیره نمایید ، می توانید طبق مراحل زیر عمل کنید .

  1. نصب کتابخانه xlsx:

ابتدا کتابخانه xlsx را با استفاده از npm نصب کنید:

  1. npm install xlsx
npm install xlsx
  1. ایجاد و دانلود فایل اکسل:

در اینجا یک مثال از کد برای ایجاد و دانلود فایل اکسل با استفاده از داده‌های شما آورده شده است:

  1. <template>
  2. <div>
  3. <button @click="exportToExcel">خروجی اکسل</button>
  4. </div>
  5. </template>
  6. <script>
  7. import * as XLSX from 'xlsx';
  8. export default {
  9. name: 'ExportExcel',
  10. data() {
  11. return {
  12. jsonData: [
  13. {
  14. NRow: 1,
  15. NTmpDocNu: 1469552,
  16. NYear: 1402,
  17. SAccCode: "تملک دارایی‌های سرمایه‌ای ",
  18. SDocDate: "1402/01/21",
  19. Status: "بي حساب",
  20. },
  21. {
  22. NRow: 2,
  23. NTmpDocNu: 1469553,
  24. NYear: 1402,
  25. SAccCode: "پرداخت بدهی های معوق ",
  26. SDocDate: "1402/01/20",
  27. Status: "بدهکار",
  28. },
  29. ],
  30. };
  31. },
  32. methods: {
  33. exportToExcel() {
  34. const worksheet = XLSX.utils.json_to_sheet(this.jsonData);
  35. const workbook = XLSX.utils.book_new();
  36. XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
  37. // خروجی اکسل را به باینری تبدیل کنید
  38. const excelBuffer = XLSX.write(workbook, {
  39. bookType: 'xlsx',
  40. type: 'array',
  41. });
  42. // دانلود فایل اکسل
  43. this.saveAsExcelFile(excelBuffer, 'ExportedData');
  44. },
  45. saveAsExcelFile(buffer, fileName) {
  46. const data = new Blob([buffer], {
  47. type: 'application/octet-stream',
  48. });
  49. const link = document.createElement('a');
  50. link.href = URL.createObjectURL(data);
  51. link.download = `${fileName}.xlsx`;
  52. link.click();
  53. },
  54. },
  55. };
  56. </script>
<template>
  <div>
    <button @click="exportToExcel">خروجی اکسل</button>
  </div>
</template>

<script>
import * as XLSX from 'xlsx';

export default {
  name: 'ExportExcel',
  data() {
    return {
      jsonData: [
        {
          NRow: 1,
          NTmpDocNu: 1469552,
          NYear: 1402,
          SAccCode: "تملک دارایی‌های سرمایه‌ای ",
          SDocDate: "1402/01/21",
          Status: "بي حساب",
        },
        {
          NRow: 2,
          NTmpDocNu: 1469553,
          NYear: 1402,
          SAccCode: "پرداخت بدهی های معوق ",
          SDocDate: "1402/01/20",
          Status: "بدهکار",
        },
      ],
    };
  },
  methods: {
    exportToExcel() {
      const worksheet = XLSX.utils.json_to_sheet(this.jsonData);
      const workbook = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

      // خروجی اکسل را به باینری تبدیل کنید
      const excelBuffer = XLSX.write(workbook, {
        bookType: 'xlsx',
        type: 'array',
      });

      // دانلود فایل اکسل
      this.saveAsExcelFile(excelBuffer, 'ExportedData');
    },
    saveAsExcelFile(buffer, fileName) {
      const data = new Blob([buffer], {
        type: 'application/octet-stream',
      });

      const link = document.createElement('a');
      link.href = URL.createObjectURL(data);
      link.download = `${fileName}.xlsx`;
      link.click();
    },
  },
};
</script>

در این مثال:

  • داده‌ها در متغیر jsonData ذخیره شده‌اند.
  • تابع exportToExcel از کتابخانه xlsx برای تبدیل داده‌ها به فایل اکسل استفاده می‌کند.
  • تابع saveAsExcelFile فایل اکسل را به صورت باینری ذخیره و دانلود می‌کند.
می خوانم   کلاس های غیر عملی ( abstract )
محمدمجتبی جوارشکیان

محمدمجتبی جوارشکیان

من محمدمجتبی جوارشکیان ، کارشناس IT و فعال اجتماعی هستم و در حوزه معماری ، طراحی ، تحلیل گری ، مدلسازی و توسعه ی محیط های نرم افزاری فعالیت دارم. همانند سایر کارشناسان IT در تلاشم تا دنیا جای زیباتری برای زندگی باشد. بسیار خوشحال می شوم من را از انتقادات ، پیشنهادات و نظرات خود مطلع فرمایید. آدرس ایمیل : mjfakhr@yahoo.com

ارسال یک پاسخ

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

5 − سه =