forked from sheetjs/sheetjs
SheetJS
a9b8588e6c
- node 4.x buffer fix (fixes #1150 h/t @gabyidong) - dependencies: CFB 1.0.8, codepage 1.14.0 - json object stream
40 lines
1.2 KiB
Markdown
40 lines
1.2 KiB
Markdown
### Streaming Write
|
|
|
|
The streaming write functions are available in the `XLSX.stream` object. They
|
|
take the same arguments as the normal write functions but return a Readable
|
|
Stream. They are only exposed in NodeJS.
|
|
|
|
- `XLSX.stream.to_csv` is the streaming version of `XLSX.utils.sheet_to_csv`.
|
|
- `XLSX.stream.to_html` is the streaming version of `XLSX.utils.sheet_to_html`.
|
|
- `XLSX.stream.to_json` is the streaming version of `XLSX.utils.sheet_to_json`.
|
|
|
|
<details>
|
|
<summary><b>nodejs convert to CSV and write file</b> (click to show)</summary>
|
|
|
|
```js
|
|
var output_file_name = "out.csv";
|
|
var stream = XLSX.stream.to_csv(worksheet);
|
|
stream.pipe(fs.createWriteStream(output_file_name));
|
|
```
|
|
|
|
</details>
|
|
|
|
<details>
|
|
<summary><b>nodejs write JSON stream to screen</b> (click to show)</summary>
|
|
|
|
```js
|
|
/* to_json returns an object-mode stream */
|
|
var stream = XLSX.stream.to_json(worksheet, {raw:true});
|
|
|
|
/* the following stream converts JS objects to text via JSON.stringify */
|
|
var conv = new Transform({writableObjectMode:true});
|
|
conv._transform = function(obj, e, cb){ cb(null, JSON.stringify(obj) + "\n"); };
|
|
|
|
stream.pipe(conv); conv.pipe(process.stdout);
|
|
```
|
|
|
|
</details>
|
|
|
|
<https://github.com/sheetjs/sheetaki> pipes write streams to nodejs response.
|
|
|