React components to select a CSV file and visualise it's content
npm install react-csv-handler1. Installation
2. Usage
3. API
1. CsvForm
2. CsvVisualiser
3. CsvHandler
React components for handling in-browser display of CSV data. This package is optimised for
time-series CSV data and supports rendering of these time series via Plotly.
The package exposes the CsvForm, which includes a file upload form and handles
the parsing of CSV, shows a preview of the data and allows to render the chart of CSV data.
Additionally, the package exposes a CsvVisualiser component, which is just
responsible for configuring the CSV columns and rendering the content.
If you just want to parse CSV, you can use the CsvHandler object, which provides
helper functions to parse CSV files. However, if you _only_ want to parse CSV, you may want to
use a more lightweight library, like csv-string or csv-parser.
``bash`
npm i -S react-csv-handler
`javascript
import React from "react"
import { CsvForm } from "react-csv-handler"
const MyComponent = props => (
`javascript
import React from "react"
import { CsvHandler } from "react-csv-handler"const MyComponent = props => {
const selectFile = ev => {
const file = ev.target.files[0]
CsvHandler.parseCsvFile(file)
.then(rawCsvData => {
// this is an array of arrays, representing the rows with their columns
})
}
return (
)
}
`When you select a CSV file, the content will be parsed and, unless
showData is set to false
a component will be rendered that allows you to configure the value type of each column. For
the date/time column, a MomentJS format
needs to be specified.API
$3
-
showData - default true - a boolean flag indicating whether to allow rendering the CSV data via a Plotly plot.
- layout - default { width: 1000, height: 450 } - the layout parameter passed into the Plotly plot$3
-
csvColumns - default [] - a list of CSV column labels in the same order as the data is
provided
- data - an array of arrays representing the rows of the CSV content. The column values can
still be strings, as the CsvVisualiser provides functions to parse column values into dates
and numeric values.
- layout - default { width: 1000, height: 450 } - the layout parameter passed into the Plotly plot$3
-
parseCsvFile(file) - a Promise-based function that uses a FileReader to read the CSV file
and parse its content into an array of arrays.
- parseCsvFileContent(csvContent) - simply a wrapper for csv-string.parse(..)`