แปลงไฟล์ Excel (xlsx, xls, CSV) เป็นรูปแบบ JSON ใน React

Feb 12 2023
เราทุกคนมีไฟล์ Excel ที่จำเป็นต้องแปลงเป็น JSON แต่ปัญหาคือเราจะทำอย่างไร? มีหลายวิธีและบางวิธีก็ดีกว่าวิธีอื่น
ภาพถ่ายโดย Lautaro Andreani บน Unsplash

เราทุกคนมีไฟล์ Excel ที่จำเป็นต้องแปลงเป็น JSON แต่ปัญหาคือเราจะทำอย่างไร? มีหลายวิธีและบางวิธีก็ดีกว่าวิธีอื่น ในบล็อกนี้ ฉันจะแสดงวิธีแปลงไฟล์ excel เป็นรูปแบบ JSON โดยใช้ Node.js

ปฏิกิริยาคืออะไร?

Reactเป็นไลบรารี JavaScript แบบโอเพ่นซอร์สฟรีสำหรับสร้างส่วนต่อประสานผู้ใช้ตามส่วนประกอบ UI ซึ่งพัฒนาโดย Meta เดิมชื่อ Facebook

JSON คืออะไร

JSONย่อมาจาก JavaScript Object Notation JSON เป็นรูปแบบข้อความมาตรฐานสำหรับการแสดงข้อมูลที่มีโครงสร้างตามไวยากรณ์ของวัตถุ JavaScript โดยทั่วไปจะใช้สำหรับการส่งข้อมูลในเว็บแอปพลิเคชัน

มาเริ่มกันเลย!

ในการแปลงไฟล์ Excel เป็นรูปแบบ JSON เราจะใช้ไลบรารี 'xlsx' ที่มีคุณสมบัติหลากหลายเพื่อทำงานกับสเปรดชีตและจัดการเนื้อหา คุณสามารถติดตั้งไลบรารีนี้ได้โดยเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:

npm install xlsx

หากต้องการอ่านไฟล์ Excel คุณต้องใช้เมธอด FileReader จาก xlsx หลังจากได้รับข้อมูลจากไฟล์ excel คุณสามารถใช้sheet_to_jsonเมธอดจากไลบรารี xlsx เพื่อแปลงเป็นรูปแบบ JSON

import React, { useState } from 'react';

const Test = () => {
const submitHandler=(e)=>{

    if (e.target.files) {
        const reader = new FileReader();
        reader.onload = (e) => {
            const data = e.target.result;
            const workbook = read(data, { type: "array" });
            const fileName= workbook.SheetNames[0];
            const sheet = workbook.Sheets[fileName];
            const json = utils.sheet_to_json(sheet);
            console.log("json",json);
        };
        reader.readAsArrayBuffer(e.target.files[0]);
    }
   }
<div>
 <input type="file" onChange={submitHandler}/>
</div>
}
export default Test

เราใช้ไฟล์ excel ต่อไปนี้เพื่อแปลงเป็น JSON

หลังจากอัปโหลดไฟล์ excel นี้แล้ว เราจะได้ข้อมูล JSON ที่นี่เราแสดงข้อมูล JSON ในตาราง

ขอบคุณที่อ่านบทความและฉันหวังว่ามันจะเป็นประโยชน์กับคุณ

ลิงค์ที่เป็นประโยชน์ :

PS: “ไม่มีเจตนาละเมิดลิขสิทธิ์ Happy Coding”

https://www.linkedin.com/in/yash-baviskar-82250a113