# xmlsx

> xmlsx can make & read xlsx with format

Latest version **0.2.6** (published 2017-09-12) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install xmlsx
pnpm add xmlsx
yarn add xmlsx
bun add xmlsx
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 0.2.6 |
| Published | 2017-09-12 |
| First published | 2017-08-31 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=4.0 |
| Dependencies | 4 |
| Known vulnerabilities | 0 (+2 in 2 direct dependencies) |
| Install scripts | no |
| Author | lix |
| Maintainers | iclae0 |
| Keywords | xml, xlsx, excel, node, js |

## Links

- npm: https://www.npmjs.com/package/xmlsx
- Repository: https://github.com/iclae/xmlsx
- Homepage: https://github.com/iclae/xmlsx#readme
- Issues: https://github.com/iclae/xmlsx/issues
- npm.io page: https://npm.io/package/xmlsx

## Dependencies (4)

- [async](https://npm.io/package/async.md) ^2.5.0
- [lodash](https://npm.io/package/lodash.md) ^4.17.4
- [xml2js](https://npm.io/package/xml2js.md) ^0.4.19
- [adm-zip](https://npm.io/package/adm-zip.md) ^0.4.7

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 0.2.6 (latest) — 2017-09-12
- 0.2.5 — 2017-09-12
- 0.2.4 — 2017-09-11
- 0.2.3 — 2017-09-11
- 0.2.2 — 2017-09-08
- 0.2.1 — 2017-09-06
- 0.2.0 — 2017-09-04
- 0.1.2 — 2017-09-01
- 0.1.1 — 2017-08-31
- 0.1.0 — 2017-08-31

## README

# xmlsx
xmlsx = xml + xlsx

## Method

* frozen: frozen a line (冻结某行以上)

      @type step
      @param [Number | String] - rowNumber

* entry: input entry (输入表格数据)

      @type step
      @param [Array[Array]] - inputData

* valid: set valid (数据验证)

      @type step
      @param [Array[Object]] - validData

* hide: hide one cell (隐藏某个cell)

      @type step
      @param [String] - hideCell

* output: get xlsx json (解析xlsx并输出内容)

      @type final
      @return @see entry param

* done: get xlsx buffer (获取设定后的xlsx)

      @type final
      @return [Buffer] xlsxBuffer

* getCell: get a xlsx axis (转换xy坐标为xlsx的位置)

      @type tool
      @param [Number, Number] x,y start on 0
      @return [String] cell eg:'A1'

* formatDate: format Date cell (将日期格式的cell值转换为Date)

      @type tool
      @param [Number|String] dateCellVal
      @return [Date] date


## Example
### Make Xlsx
    var xmlsx = new Xmlsx()

    xmlsx
      .entry([
        ['1', 2, '三'], 
        ['foo', 'bar'],
        [],
        ['', 'space', ],
        ['', '', '@_@']
      ])
      .frozen('5')
      .hide('A2')
      .valid([
        { A1: ['male', 'famale'] }, 
        { B5: ['JS', 'Node', '东北话'] }, 
        { 'C2:C1000': ['甜豆腐脑', '咸豆腐脑'] }
      ])
      .done(function(err, buf) {
        fs.writeFile('test.xlsx', buf)
      })

### Read Xlsx
    fs.readFile('test.xlsx', function(err, buf) {
      var xmlsx = new Xmlsx(buf)
      xmlsx.output()
      //-> { entry: [[...], [...], ...] }

      xmlsx.frozen().output()
      //-> { ..., frozen: '5' }

      xmlsx.valid().frozen().output()
      //-> { ..., valid: [{ A1: [ male, famale ]}] }
    })

### Tools
      Xmlsx.getCell(0, 0)   //-> 'A1'
      Xmlsx.getCell(1, 2)   //-> 'B3'

      Xmlsx.formatDate(42735)  //-> Sun Jan 01 2017 00:00:00 GMT+0800 (CST) (2017/1/1)

### Current

* windows write data wrong

---
_Source: https://npm.io/package/xmlsx · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
