Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mholt/PapaParse
Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input
https://github.com/mholt/PapaParse
csv csv-parser javascript
Last synced: 14 days ago
JSON representation
Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input
- Host: GitHub
- URL: https://github.com/mholt/PapaParse
- Owner: mholt
- License: mit
- Created: 2013-10-07T20:33:21.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2024-03-27T16:29:22.000Z (8 months ago)
- Last Synced: 2024-05-02T01:09:27.754Z (6 months ago)
- Topics: csv, csv-parser, javascript
- Language: JavaScript
- Homepage: http://PapaParse.com
- Size: 13.9 MB
- Stars: 12,149
- Watchers: 155
- Forks: 1,135
- Open Issues: 195
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-nodejs - PapaParse - Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input. ![](https://img.shields.io/github/stars/mholt/PapaParse.svg?style=social&label=Star) (Repository / Parsing)
- awesome-lwc - PapaParse
- awesome-starred - mholt/PapaParse - Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input (javascript)
- awesome-nodejs - PapaParse - 快速而强大的 CSV(分隔文本)解析器,可以优雅地处理大文件和格式错误的输入,CSV 和 JSON 互转。 ![](https://img.shields.io/github/stars/mholt/PapaParse.svg?style=social&label=Star) (GIT 仓库 / 解析工具)
- awesome-javascript - PapaParse - Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input - ★ 5997 (Files)
README
Parse CSV with JavaScript
========================================Papa Parse is the fastest in-browser CSV (or delimited text) parser for JavaScript. It is reliable and correct according to [RFC 4180](https://tools.ietf.org/html/rfc4180), 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 `` elements
- One of the only parsers that correctly handles line-breaks and quotationsPapa Parse has **no dependencies** - not even jQuery.
Install
-------papaparse is available on [npm](https://www.npmjs.com/package/papaparse). It
can be installed with the following command:
```shell
npm install papaparse
```If you don't want to use npm, [papaparse.min.js](https://unpkg.com/papaparse@latest/papaparse.min.js) can be downloaded to your project source.
Usage
-----
```js
import Papa from 'papaparse';Papa.parse(file, config);
const csv = Papa.unparse(data[, config]);
```Homepage & Demo
----------------- [Homepage](http://papaparse.com)
- [Demo](http://papaparse.com/demo)To learn how to use Papa Parse:
- [Documentation](http://papaparse.com/docs)
The website is hosted on [Github Pages](https://pages.github.com/). 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 Node
--------------------Papa Parse can parse a [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams) instead of a [File](https://www.w3.org/TR/FileAPI/) when used in Node.js environments (in addition to plain strings). In this mode, `encoding` must, if specified, be a Node-supported character encoding. The `Papa.LocalChunkSize`, `Papa.RemoteChunkSize` , `download`, `withCredentials` and `worker` config options are unavailable.
Papa Parse can also parse in a node streaming style which makes `.pipe` available. Simply pipe the [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams) to the stream returned from `Papa.parse(Papa.NODE_STREAM_INPUT, options)`. The `Papa.LocalChunkSize`, `Papa.RemoteChunkSize` , `download`, `withCredentials`, `worker`, `step`, and `complete` config options are unavailable. To register a callback with the stream to process data, use the `data` event like so: `stream.on('data', callback)` and to signal the end of stream, use the 'end' event like so: `stream.on('end', callback)`.
Get Started
-----------For usage instructions, see the [homepage](http://papaparse.com) and, for more detail, the [documentation](http://papaparse.com/docs).
Tests
-----Papa Parse is under test. Download this repository, run `npm install`, then `npm test` to run the tests.
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](https://github.com/mholt/PapaParse/graphs/contributors)! Remember, a pull request, *with test*, is best. You may also discuss on Twitter with [#PapaParse](https://twitter.com/search?q=%23PapaParse&src=typd&f=realtime) or directly to me, [@mholt6](https://twitter.com/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.