- Notifications
You must be signed in to change notification settings - Fork1.2k
Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input
License
mholt/PapaParse
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Papa Parse is the fastest in-browser CSV (or delimited text) parser for JavaScript. It is reliable and correct according toRFC 4180, and it comes with these features:
- 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
<input type="file">elements - One of the only parsers that correctly handles line-breaks and quotations
Papa Parse hasno dependencies - not even jQuery.
papaparse is available onnpm. Itcan be installed with the following command:
npm install papaparse
If you don't want to use npm,papaparse.min.js can be downloaded to your project source.
importPapafrom'papaparse';Papa.parse(file,config);constcsv=Papa.unparse(data[,config]);
To learn how to use Papa Parse:
The website is hosted onGithub 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 can parse aReadable Stream instead of aFile when used in Node.js environments (in addition to plain strings). In this mode,encoding must, if specified, be a Node-supported character encoding. ThePapa.LocalChunkSize,Papa.RemoteChunkSize ,download,withCredentials andworker config options are unavailable.
Papa Parse can also parse in a node streaming style which makes.pipe available. Simply pipe theReadable Stream to the stream returned fromPapa.parse(Papa.NODE_STREAM_INPUT, options). ThePapa.LocalChunkSize,Papa.RemoteChunkSize ,download,withCredentials,worker,step, andcomplete config options are unavailable. To register a callback with the stream to process data, use thedata event like so:stream.on('data', callback) and to signal the end of stream, use the 'end' event like so:stream.on('end', callback).
For usage instructions, see thehomepage and, for more detail, thedocumentation.
Papa Parse is under test. Download this repository, runnpm install, thennpm test to run the tests.
To discuss a new feature or ask a question, open an issue. To fix a bug, submit a pull request to be credited with thecontributors! 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.
About
Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.