2.0.2 • Published 6 years ago
spread2json v2.0.2
Spread2Json
Can be converted to JSON format any SpreadSheet data.
example SpreadSheet data
| A | B | C | D | |
|---|---|---|---|---|
| 1 | {} | |||
| 2 | _id | obj.code | obj.value:number | |
| 3 | ||||
| 4 | first | one | 1 | |
| 5 | second | two | 2 | |
| 6 |
converted to Object
[
{
_id: 'first',
obj: {
code: 'one',
value: 1
}
},
{
_id: 'second',
obj: {
code: 'two',
value: 2
}
}
]Installation
npm install spread2jsonUsage
Quick start
example
| A | B | C | D | |
|---|---|---|---|---|
| 1 | {name: 'Test'} | |||
| 2 | _id | obj.code | obj.value:number | |
| 3 | ||||
| 4 | first | one | 1 | |
| 5 | second | two | 2 | |
| 6 |
Sheet1
var spread2json = require('spread2json');
var spreadsheetKye = 'spreadsheetkey';
var worksheetNames = ['Sheet1'];
spread2json.getWorksheetDatas(spreadsheetKey, worksheetNames, function(err, data) {
console.log(data);
// [{
// name: 'Sheet1', // sheet name
// opts: { name: 'Test' }, // sheet option (A1)
// list: [
// { _id: 'first', obj: { code: 'one', value: 1 } }, { _id: 'second', obj: { code: 'two', value: 2 } }
// ]
// }]
spread2json.toJson(data, function(err, json) {
console.log(json);
// {
// Test: {
// first: {
// _id: 'first',
// obj: { code: 'one', value: 1 }
// },
// second: {
// _id: 'second',
// obj: { code: 'two', value: 2 }
// }
// }
// }
});
});Setup
Setup options.
var spread2json = require('spread2json');
spread2json.setup({
option_cell: 'A1', // Cell with a custom sheet option. It is not yet used now. (default: 'A1'
attr_line: 2, // Line with a data attribute. (default: 2
desc_line: 3, // Line with a attribute description. (default: 3
data_line: 4, // Line with a data. (default: 4
ref_keys: ['_id'], // ref key. (default: ['_id']
logger: customLogger, // custom Logger
api: {
client_id: 'YOUR CLIENT ID HERE',
client_secret: 'YOUR CLIENT SECRET HERE',
redirect_url: 'http://localhost',
token_file: {
use: true,
path: './dist/token.json'
}
}
});Sheet option
sheet option. setting with optionCell (default: 'A1'
nametypekeyattr_linedata_lineref_keys
Attribute
Specify the key name.
Special character
#Use when the array.$Use when the split array.:numberor:numUse when the parameters of typeNumber.:booleanor:boolUse when the parameters of typeBoolean.:dateUse when the parameters of unix time.:indexUse when the array of array.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | {} | |||||
| 2 | _id | #arr | $sarr | num:number | bool:boolean | date:date |
| 3 | ||||||
| 4 | normal_string | array1 | a,b,c | 1 | FALSE | 2014/08/01 10:00:00 |
| 5 | array2 |
{
_id: 'normal_string',
arr: [ 'array1', 'array2' ],
sarr: [ 'a', 'b', 'c' ],
num: 1,
bool: false,
date: 1406854800000 // < new Date('2014/08/01 10:00:00').getTime() user env GMT
}Sample
sample project. spread2json_sample
Contribution
- Fork it ( https://github.com/iyu/spread2json/fork )
- Create a feature branch
- Commit your changes
- Rebase your local changes against the master branch
- Run test suite with the
npm test; npm run lintcommand and confirm that it passes - Create new Pull Request
2.0.2
6 years ago
2.0.1
6 years ago
2.0.0
6 years ago
1.4.2
6 years ago
1.4.0
7 years ago
1.3.1
8 years ago
1.3.0
8 years ago
1.2.2
8 years ago
1.2.1
8 years ago
1.2.0
8 years ago
1.1.2
8 years ago
1.1.1
8 years ago
1.1.0
8 years ago
1.0.4
9 years ago
1.0.3
9 years ago
0.4.2
9 years ago
1.0.2
9 years ago
1.0.1
9 years ago
1.0.0
9 years ago
0.4.1
9 years ago
0.4.0
9 years ago
0.3.3
10 years ago
0.3.2
10 years ago
0.3.1
10 years ago
0.3.0
10 years ago
0.2.3
10 years ago
0.2.2
10 years ago
0.2.1
10 years ago
0.2.0
10 years ago
0.1.0
11 years ago
0.0.9
11 years ago
0.0.8
11 years ago
0.0.7
11 years ago
0.0.6
11 years ago
0.0.5
11 years ago
0.0.4
11 years ago
0.0.3
11 years ago
0.0.2
11 years ago
0.0.1
11 years ago