README [ci skip]
This commit is contained in:
parent
4880e9219f
commit
ba1d2ea2be
11
Makefile
11
Makefile
@ -69,10 +69,15 @@ dist-deps: ## Copy dependencies for distribution
|
||||
.PHONY: aux
|
||||
aux: $(AUXTARGETS)
|
||||
|
||||
.PHONY: nexe
|
||||
nexe: xlsx.exe
|
||||
.PHONY: graph
|
||||
graph: formats.png ## Rebuild format conversion graph
|
||||
formats.png: formats.dot
|
||||
circo -Tpng -o$@ $<
|
||||
|
||||
xlsx.exe: bin/xlsx.js xlsx.js
|
||||
.PHONY: nexe
|
||||
nexe: xlsx.exe ## Build nexe standalone executable
|
||||
|
||||
xlsx.exe: bin/xlsx.njs xlsx.js
|
||||
nexe -i $< -o $@ --flags
|
||||
|
||||
## Testing
|
||||
|
83
README.md
83
README.md
@ -27,6 +27,8 @@ File format support for known spreadsheet data formats:
|
||||
| **Other Common Spreadsheet Output Formats** |:-----:|:-----:|
|
||||
| HTML Tables | :o: | |
|
||||
|
||||
![circo graph of format support](formats.png)
|
||||
|
||||
Demo: <http://oss.sheetjs.com/js-xlsx>
|
||||
|
||||
Source: <http://git.io/xlsx>
|
||||
@ -57,6 +59,14 @@ $ bower install js-xlsx
|
||||
CDNjs automatically pulls the latest version and makes all versions available at
|
||||
<http://cdnjs.com/libraries/xlsx>
|
||||
|
||||
### JS Ecosystem Demos
|
||||
|
||||
The `demos` directory includes sample projects for:
|
||||
|
||||
- [`browserify`](http://browserify.org/)
|
||||
- [`requirejs`](http://requirejs.org/)
|
||||
- [`webpack`](https://webpack.js.org/)
|
||||
|
||||
### Optional Modules
|
||||
|
||||
The node version automatically requires modules for additional features. Some
|
||||
@ -73,14 +83,6 @@ An appropriate version for each dependency is included in the dist/ directory.
|
||||
|
||||
The complete single-file version is generated at `dist/xlsx.full.min.js`
|
||||
|
||||
### JS Ecosystem Demos
|
||||
|
||||
The `demos` directory includes sample projects for:
|
||||
|
||||
- [`browserify`](http://browserify.org/)
|
||||
- [`requirejs`](http://requirejs.org/)
|
||||
- [`webpack`](https://webpack.js.org/)
|
||||
|
||||
### ECMAScript 5 Compatibility
|
||||
|
||||
Since xlsx.js uses ES5 functions like `Array#forEach`, older browsers require
|
||||
@ -411,20 +413,20 @@ array range. Other cells in the range will omit the `f` field.
|
||||
|
||||
The raw value is stored in the `v` field, interpreted based on the `t` field.
|
||||
|
||||
Type `b` is the Boolean type. `v` is interpreted according to JS truth tables
|
||||
Type `b` is the Boolean type. `v` is interpreted according to JS truth tables.
|
||||
|
||||
Type `e` is the Error type. `v` holds the number and `w` holds the common name:
|
||||
|
||||
| Value | Error Meaning |
|
||||
| ----: | :------------- |
|
||||
| 0x00 | #NULL! |
|
||||
| 0x07 | #DIV/0! |
|
||||
| 0x0F | #VALUE! |
|
||||
| 0x17 | #REF! |
|
||||
| 0x1D | #NAME? |
|
||||
| 0x24 | #NUM! |
|
||||
| 0x2A | #N/A |
|
||||
| 0x2B | #GETTING\_DATA |
|
||||
| Value | Error Meaning |
|
||||
| -----: | :-------------- |
|
||||
| `0x00` | `#NULL!` |
|
||||
| `0x07` | `#DIV/0!` |
|
||||
| `0x0F` | `#VALUE!` |
|
||||
| `0x17` | `#REF!` |
|
||||
| `0x1D` | `#NAME?` |
|
||||
| `0x24` | `#NUM!` |
|
||||
| `0x2A` | `#N/A` |
|
||||
| `0x2B` | `#GETTING_DATA` |
|
||||
|
||||
Type `n` is the Number type. This includes all forms of data that Excel stores
|
||||
as numbers, such as dates/times and Boolean fields. Excel exclusively uses data
|
||||
@ -707,8 +709,28 @@ Running `make init` will refresh the `test_files` submodule and get the files.
|
||||
|
||||
## Testing
|
||||
|
||||
`make test` will run the node-based tests. To run the in-browser tests, clone
|
||||
[the oss.sheetjs.com repo](https://github.com/SheetJS/SheetJS.github.io) and
|
||||
`make test` will run the node-based tests. By default it runs tests on files in
|
||||
every supported format. To test a specific file type, set `FMTS` to the format
|
||||
you want to test. Feature-specific tests are avaialble with `make test_misc`
|
||||
|
||||
```bash
|
||||
$ make test # run full tests
|
||||
$ make test_xls # only use the XLS test files
|
||||
$ make test_xlsx # only use the XLSX test files
|
||||
$ make test_xlsb # only use the XLSB test files
|
||||
$ make test_xml # only use the XLSB test files
|
||||
$ make test_ods # only use the XLSB test files
|
||||
```
|
||||
|
||||
To enable all errors, set the environment variable `WTF=1`:
|
||||
|
||||
```bash
|
||||
$ make test # run full tests
|
||||
$ WTF=1 make test # enable all error messages
|
||||
```
|
||||
|
||||
To run the in-browser tests, clone
|
||||
[The oss.sheetjs.com repo](https://github.com/SheetJS/SheetJS.github.io) and
|
||||
replace the xlsx.js file (then fire up the browser and go to `stress.html`):
|
||||
|
||||
```bash
|
||||
@ -718,7 +740,6 @@ $ simplehttpserver # or "python -mSimpleHTTPServer" or "serve"
|
||||
$ open -a Chromium.app http://localhost:8000/stress.html
|
||||
```
|
||||
|
||||
For a much smaller test, run `make test_misc`.
|
||||
|
||||
## Contributing
|
||||
|
||||
@ -728,28 +749,24 @@ important to ensure code is cleanroom. Consult CONTRIBUTING.md
|
||||
The xlsx.js file is constructed from the files in the `bits` subdirectory. The
|
||||
build script (run `make`) will concatenate the individual bits to produce the
|
||||
script. Before submitting a contribution, ensure that running make will produce
|
||||
the xlsx.js file exactly. The simplest way to test is to move the script:
|
||||
the xlsx.js file exactly. The simplest way to test is to add the script:
|
||||
|
||||
```bash
|
||||
$ mv xlsx.js xlsx.new.js
|
||||
$ git add xlsx.js
|
||||
$ make clean
|
||||
$ make
|
||||
$ diff xlsx.js xlsx.new.js
|
||||
$ git diff xlsx.js
|
||||
```
|
||||
|
||||
To produce the dist files, run `make dist`. The dist files are updated in each
|
||||
version release and should not be committed between versions.
|
||||
version release and *should not be committed between versions*.
|
||||
|
||||
|
||||
## License
|
||||
|
||||
Please consult the attached LICENSE file for details. All rights not explicitly
|
||||
granted by the Apache 2.0 License are reserved by the Original Author.
|
||||
|
||||
It is the opinion of the Original Author that this code conforms to the terms of
|
||||
the Microsoft Open Specifications Promise, falling under the same terms as
|
||||
OpenOffice (which is governed by the Apache License v2). Given the vagaries of
|
||||
the promise, the Original Author makes no legal claim that in fact end users are
|
||||
protected from future actions. It is highly recommended that, for commercial
|
||||
uses, you consult a lawyer before proceeding.
|
||||
|
||||
## References
|
||||
|
||||
@ -777,6 +794,8 @@ OSP-covered specifications:
|
||||
|
||||
Open Document Format for Office Applications Version 1.2 (29 September 2011)
|
||||
|
||||
Worksheet File Format (From Lotus) December 1984
|
||||
|
||||
|
||||
## Badges
|
||||
|
||||
|
50
formats.dot
Normal file
50
formats.dot
Normal file
@ -0,0 +1,50 @@
|
||||
digraph G {
|
||||
graph [mindist=0.1];
|
||||
csf [shape=doublecircle,label="Common\nSpreadsheet\nFormat\n(JS Object)"];
|
||||
subgraph XL {
|
||||
node [style=filled,color=green];
|
||||
xlsx [label="XLSX\nXLSM"];
|
||||
xlsb [label="XLSB\nBIFF12"];
|
||||
xlml [label="SSML\n(2003/4)"];
|
||||
xls2 [label="XLS\nBIFF2"];
|
||||
xls3 [label="XLS\nBIFF3"];
|
||||
xls4 [label="XLS\nBIFF4"];
|
||||
xls5 [label="XLS\nBIFF5"];
|
||||
xls8 [label="XLS\nBIFF8"];
|
||||
}
|
||||
|
||||
subgraph OD {
|
||||
node [style=filled,color=yellow];
|
||||
ods [label="ODS"];
|
||||
fods [label="Flat\nODS"];
|
||||
uos [label="UOS\n标文通"];
|
||||
}
|
||||
|
||||
subgraph OLD {
|
||||
node [style=filled,color=cyan];
|
||||
html [label="HTML\nTable"];
|
||||
csv [label="CSV"];
|
||||
}
|
||||
|
||||
subgraph JSXLSX {
|
||||
edge [color=blue];
|
||||
csf -> xlsx
|
||||
xlsx -> csf
|
||||
csf -> xlsb
|
||||
xlsb -> csf
|
||||
xlml -> csf
|
||||
xls2 -> csf
|
||||
csf -> xls2
|
||||
xls3 -> csf
|
||||
xls4 -> csf
|
||||
xls5 -> csf
|
||||
xls8 -> csf
|
||||
csf -> csv
|
||||
ods -> csf
|
||||
csf -> ods
|
||||
fods -> csf
|
||||
csf -> fods
|
||||
uos -> csf
|
||||
html -> csf
|
||||
}
|
||||
}
|
BIN
formats.png
Normal file
BIN
formats.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 77 KiB |
Loading…
Reference in New Issue
Block a user