UNPKG

@adaptabletools/adaptable

Version:

Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

40 lines (39 loc) 1.26 kB
import { readJSONFile } from '../../components/FileDroppable'; const jsonHandler = { fileExtension: '.json', handleFile: (file) => readJSONFile(file), }; export const parseCSV = (content) => { const lines = content.split('\n'); const headers = lines[0].split(','); const data = []; if (lines.length <= 1) { return null; } for (let i = 1; i < lines.length; i++) { const values = lines[i].split(','); if (values.length === headers.length) { const item = {}; for (let j = 0; j < headers.length; j++) { const value = values[j]; item[headers[j]] = value === '' || isNaN(Number(value)) ? value : Number(value); // '0012345' } data.push(item); } } return data; }; const csvFileHandler = { fileExtension: '.csv', handleFile: (file) => { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = (event) => { const content = event.target?.result; resolve(parseCSV(content)); }; reader.readAsText(file); }); }, }; export const systemFileHandlers = [jsonHandler, csvFileHandler];