Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hugorper/excel-2-jsonschema
A tool to generate JSON Schema files from Excel Sheet
https://github.com/hugorper/excel-2-jsonschema
Last synced: 16 days ago
JSON representation
A tool to generate JSON Schema files from Excel Sheet
- Host: GitHub
- URL: https://github.com/hugorper/excel-2-jsonschema
- Owner: hugorper
- License: mit
- Fork: true (pponugo/excel2jsonschema)
- Created: 2018-06-05T16:25:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-06-06T18:49:29.000Z (over 6 years ago)
- Last Synced: 2024-10-31T19:43:16.917Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 303 KB
- Stars: 12
- Watchers: 2
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - hugorper/excel-2-jsonschema - A tool to generate JSON Schema files from Excel Sheet (JavaScript)
README
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
[![Dependency Status](https://tidelift.com/badges/github/hugorper/excel-2-jsonschema)](https://tidelift.com/badges/github/hugorper/excel-2-jsonschema) [![Build Status](https://travis-ci.org/hugorper/excel-2-jsonschema.svg?branch=master)](https://travis-ci.org/hugorper/excel-2-jsonschema)# A tool to generate JSON Schema files from Excel Sheet
## Why
[JSON Schema](http://json-schema.org/) creation is difficult, especially for non-technical people. Excel is widely used and proves to be a good tool for defining schema
## Excel-2-jsonschema CLI tool?
The **excel-2-jsonschema** CLI tool, allows to generate [JSON Schema](http://json-schema.org/) from Excel Sheet table.
## Excel Table (input)
|Name|Property|Type|Description|
|----|--------|----|------------|
|Hotel|Id|string|Hotel unique identifier.|
|Hotel|description|string|Hotel description.|
|Hotel|displayName|string|Display name of hotel.|
|Hotel|capacity|string|Capacity of the hotel, ex: 44 people.|
|Hotel|image|string|Image URL representing the hotel.|## JSON Schema (output)
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "hotel",
"description": "hotel",
"type": "object",
"properties": {
"id": {
"description": "Hotel unique identifier.",
"type": "string"
},
"description": {
"description": "Hotel description.",
"type": "string"
},
"displayName": {
"description": "Display name of hotel.",
"type": "string"
},
"capacity": {
"description": "Capacity of the hotel, ex: 44 people.",
"type": "string"
},
"image": {
"description": "Image URL representing the hotel.",
"type": "string"
}
},
"required": []
}
```## CLI Tool (global mode)
### CLI install
```npm install -g hugorper/excel-2-jsonschema```
### CLI Usage
```
How to Execute (with default args -e -v):
excel-2-jsonschema -i ./sample.xls -s Schema -o ./distUsage: excel-2-jsonschema [options]
Options:
-i, --inputExcelFile 'File Localtion' which contains Schema definations
-s, --sheetName 'Sheet Name' which contains Schema definations
-o, --outputDir 'Output Directory' where JSON Schema files should be generated## Install
-e, --embedded 'Embedded' If embedded Schema should be generated (default: false)
-v, --versionSchema ' Contains Schema version (default: http://json-schema.org/draft-07/schema#)
```## Developer
### Install
```npm install hugorper/excel-2-jsonschema --save-dev```
### Usage
Generate schemas.
```js
const generateJSONSchema = require('generate-json-schema');
const path = require('path');var options = {
inputExcelFile: path.join(__dirname, 'example/sample.xlsx'),
outputDir: path.join(__dirname, 'dist'),
sheetName: 'Schema',
embedded: false,
versionSchema: 'http://json-schema.org/draft-07/schema#'
};generateJSONSchema(options.inputExcelFile, options.sheetName, options.outputDir, options.embedded, options.versionSchema);
```Generate json example files.
```js
const generateJSONExample = require('./src/generate-json-example');
const path = require('path');var options = {
inputExcelFile: path.join(__dirname, 'example/sample.xlsx'),
outputDir: path.join(__dirname, 'dist'),
sheetName: 'Schema'
};generateJSONExample(options.inputExcelFile, options.sheetName, options.outputDir);
```## List Gulp Tasks
* clean: clean all output files
* schema: Use generate json
* example: Run example json output
* build: Build project
* lint: execute lintFor more informations about npm run-script, go to _scripts_ of file _package.json_.
## Excel sample files
* [sample.xlsx](https://github.com/hugorper/excel-2-jsonschema/tree/master/example/sample.xlsx)
* [advanced-sample.xlsx](https://github.com/hugorper/excel-2-jsonschema/tree/master/example/advanced-sample.xlsx)