- Easy to use
- Parse CSV files directly (local or over the network)
- Fast mode
- Stream large files (even via HTTP)
- Reverse parsing (converts JSON to CSV)
- Auto-detect delimiter
- Worker threads to keep your web page reactive
- Header row support
- Pause, resume, abort
- Can convert numbers and booleans to their types
- Optional jQuery integration to get files from
- One of the only parsers that correctly handles line-breaks and quotations
Papa Parse has no dependencies - not even jQuery.
Installpapaparse is available on npm. It can be installed with the following command:
If you don't want to use npm, papaparse.min.js can be downloaded to your project source.
npm install papaparse
Homepage & Demo
To learn how to use Papa Parse:
The website is hosted on Github Pages. Its content is also included in the docs folder of this repository. If you want to contribute on it just clone the master of this repository and open a pull request.
Papa Parse for NodePapa Parse can parse a Readable Stream instead of a File when used in Node.js environments (in addition to plain strings). In this mode,
encodingmust, if specified, be a Node-supported character encoding. The
workerconfig options are unavailable.
Papa Parse can also parse in a node streaming style which makes
.pipeavailable. Simply pipe the Readable Stream to the stream returned from
Papa.parse(Papa.NODE_STREAM_INPUT, options). The
completeconfig options are unavailable. To register a callback with the stream to process data, use the
dataevent like so:
stream.on('data', callback)and to signal the end of stream, use the 'end' event like so:
Get StartedFor usage instructions, see the homepage and, for more detail, the documentation.
TestsPapa Parse is under test. Download this repository, run
npm install, then
npm testto run the tests.
ContributingTo discuss a new feature or ask a question, open an issue. To fix a bug, submit a pull request to be credited with the contributors! Remember, a pull request, with test, is best. You may also discuss on Twitter with #PapaParse or directly to me, @mholt6.
If you contribute a patch, ensure the tests suite is running correctly. We run continuous integration on each pull request and will not accept a patch that breaks the tests.