GithubHelp home page GithubHelp logo

vweevers / detect-tabular Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 217 KB

A stream that detects tabular data (spreadsheets, dsv or json) and yields objects.

License: MIT License

JavaScript 100.00%
nodejs stream spreadsheets csv dsv json ndjson xls xlsx ods

detect-tabular's Introduction

detect-tabular

A stream that detects tabular data (spreadsheets, dsv or json) and yields objects.
Supports 20+ different file formats. Spreadsheets and DSV must have a header.

npm status node Test Standard

Example

npm i detect-tabular map-tabular-keys snake-case jsonstream

const detect = require('detect-tabular')
const fs = require('fs')
const keys = require('map-tabular-keys')
const snake = require('snake-case').snakeCase
const json = require('jsonstream')

fs.createReadStream('test/air_pollution_nl.xlsx')
  .pipe(detect())
  .pipe(keys(snake))
  .pipe(json.stringify())
  .pipe(process.stdout)

Tip   If you need normalization like this or number coercion, jump to tabular-stream. If you want a CLI that does multi-format conversion, check out tabular-cli.

API

detect([options])

Returns a duplex stream - give it any tabular data, get back objects. Options are passed as-is to spreadsheet-stream (if applicable).

Supported Input Formats

Text formats:

Binary formats, through spreadsheet-stream:

  • Office Open XML (xlsx, Excel 2007 and above)
  • SpreadsheetML (xml, Excel 2003)
  • BIFF 5-8 (xls, Excel 95 and above)
  • Open Document Format/OASIS (ods)
  • SYLK
  • And more.

NB. Because these binary formats are not streamable, spreadsheet-stream will buffer the whole thing in memory. As a safe-guard you can set the maxSize option (in bytes): detect({ maxSize: 1024 * 1024 }). See spreadsheet-stream for details.

Install

With npm do:

npm install detect-tabular

License

MIT.

Test data © Statistics Netherlands, The Hague/Heerlen.

detect-tabular's People

Contributors

dependabot[bot] avatar greenkeeper[bot] avatar vweevers avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.