Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Matthew Holt d3a2d638c8 Updated README 10 years ago
player New fast mode for inputs without quoted fields 10 years ago
tests add tiny server for running tests locally 10 years ago
.gitignore Version 3 now working; added player and tests 11 years ago
.npmignore Updated README and all manifest files 10 years ago
LICENSE Version 3 now working; added player and tests 11 years ago
README.md Updated README 10 years ago
bower.json Fixed #121, simplified quote handling logic (yay) 10 years ago
package.json add tiny server for running tests locally 10 years ago
papaparse.js Merge pull request #120 from edg2s/script-path-fix 10 years ago
papaparse.min.js Fixed #121, simplified quote handling logic (yay) 10 years ago
parse.jquery.json Fixed #121, simplified quote handling logic (yay) 10 years ago

README.md

Parse CSV with JavaScript

mholt on Gratipay

Papa Parse is the fastest in-browser CSV (or delimited text) parser for JavaScript. It is reliable and correct according to RFC 4180, and it comes with these features:

  • Easy to use
  • Parse CSV files directly (local or over the network)
  • Fast mode (is really fast)
  • 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

Papa Parse has no dependencies - not even jQuery.

Homepage & Demo

To learn how to use Papa Parse:

Papa Parse for Node

Rich Harris forked this project to make Baby Parse which runs in Node.js environments.

$ npm install babyparse

Baby Parse on npm registry

Use it just like Papa Parse. However:

  • Files are not supported; strings only (you can use Node's file facilities to load file contents yourself)
  • Some config options are unavailable:
    • worker
    • download (you can use Node's network facilities to download files yourself)
    • encoding
    • chunk

Otherwise, Baby Parse has nearly all the same functionality as Papa Parse 4.0, including the unparse() utility.

Get Started

Use papaparse.min.js for production.

For usage instructions, see the homepage and, for more detail, the documentation.

Tests

Papa Parse is under test. Download this repository, run npm install, then npm test to run the tests in your browser.

Contributing

To 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.