React 기능 구성 요소를 사용하여 CSV 파일을 읽는 방법
12354 단어 javascriptcsvtutorialreact
HTML 테이블에 CSV 데이터를 표시하기 위해 자식 구성 요소를 포함했습니다. 다음은 이 코드에 대한 링크입니다.
.
먼저 기능 구성 요소와 상태 변수를 만듭니다.
const CsvReader = () => {
// save the input file name to a state variable
const [csvFile, setCsvFile] = useState(null);
// save the file data to a state variable
// so the DisplayTable component can use it
const [csvArray, setCsvArray] = useState([]);
}
csv 데이터의 각 줄은 개행 문자로 구분됩니다. 그래서 제거해야 합니다. 맵 기능을 사용하여 쉼표를 공백으로 바꿉니다. 그런 다음 행 데이터로 setCsvArray를 호출합니다.
다음으로 파일 업로드를 처리하는 함수를 작성합니다.
const handleFileUpload = () => {
const file = csvFile;
const reader = new FileReader();
reader.onload = function (e) {
const text = e.target.result;
processCSV(text);
};
reader.readAsText(file);
};
기능 구성 요소를 설정합니다. 입력 유형="파일"및 수락=".csv"와 함께 jsx를 반환하고 onClick 이벤트 핸들러가 있는 버튼을 반환합니다. DisplayTable은 테이블 머리글, 행 및 셀 데이터를 하드 코딩하지 않고 html 테이블을 표시하기 위해 작성한 자식 구성 요소입니다. 선택 사항입니다.
return (
<div>
<input
type="file"
accept=".csv"
onChange={(e) => {
setCsvFile(e.target.files[0]);
}}
/>
<button
onClick={(e) => {
e.preventDefault();
handleFileUpload();
}}
>
Submit
</button>
<br />
<DisplayTable value={csvArray} />
</div>
);
};
export default CsvReader;
이것이 최종 결과입니다.
import React from "react";
import { useState } from "react";
import DisplayTable from "./DisplayTable";
const CsvReader = () => {
// save the input file name to a state variable
const [csvFile, setCsvFile] = useState(null);
// save the file data to a state variable
// so the DisplayTable component can use it
const [csvArray, setCsvArray] = useState([]);
const processCSV = (str) => {
// split the file data into rows from the newline character
let rows = str.split("\n");
// remove comma
rows = rows.map(function (row) {
return row.replace(/,/g, " ");
});
setCsvArray(rows);
};
const handleFileUpload = () => {
const file = csvFile;
const reader = new FileReader();
reader.onload = function (e) {
const text = e.target.result;
processCSV(text);
};
reader.readAsText(file);
};
return (
<div>
<input
type="file"
accept=".csv"
onChange={(e) => {
setCsvFile(e.target.files[0]);
}}
/>
<button
onClick={(e) => {
e.preventDefault();
handleFileUpload();
}}
>
Submit
</button>
<br />
<DisplayTable value={csvArray} />
</div>
);
};
export default CsvReader;
Reference
이 문제에 관하여(React 기능 구성 요소를 사용하여 CSV 파일을 읽는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dbrownsoftware/how-to-read-a-csv-file-using-react-functional-components-44m9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)