https://github.com/lykmapipo/xls2xform-upload
Upload and convert XLSForm into XForm
https://github.com/lykmapipo/xls2xform-upload
Last synced: 5 months ago
JSON representation
Upload and convert XLSForm into XForm
- Host: GitHub
- URL: https://github.com/lykmapipo/xls2xform-upload
- Owner: lykmapipo
- Created: 2015-11-06T15:15:31.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2016-03-29T06:01:00.000Z (almost 10 years ago)
- Last Synced: 2025-07-21T18:47:37.659Z (6 months ago)
- Language: JavaScript
- Size: 9.77 KB
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
xls2xform-upload
=================
[](https://travis-ci.org/lykmapipo/xls2xform-upload)
Upload and convert [XLSForm](http://xlsform.org/) into [XForm](http://opendatakit.github.io/odk-xform-spec/) in [nodejs](https://github.com/nodejs)
It support both `multiparty` request and normal http request where `xlsform` is send as `base64` encoded content
## Installation
```sh
$ npm install --save xls2xform-upload
```
## Usage
```js
var app = require('express');
var xlsformUpload = require('xls2xform-upload');
//use xlsform in your middlewares chain
app.get('/xform', xlsformUpload(), function(request, response) {
//obtain xlsform and xform details from request body
//by using `xlsform` key by default
request.body.xlsform;
});
//or with options supplied
app.get('/xform', xlsformUpload({
fieldName: 'form',
pythonPath:
}), function(request, response) {
//obtain xlsform and xform details from request body
//by using provided fieldName `form`
request.body.form;
});
```
## Options
`xls2xform-upload` accept the following options
- `fieldName` a name of the field used to extract xlsform details from `multiparty` or normal http request default to `xlsform`
- `pythonPath` path to custom python installation
## Result
`xls2xform-upload` will accept, parse and convert submitted `XLSForm` into `XForm`. The structure of result is as bellow:
```js
{
name: '',
type: '',
size: '',
base64:'',
xform:''
}
```
## Base64 Convertion
In `base64` convertion you will have to prepare a json payload as below:
```js
{
``: {
name: 'simple.xls',
type: 'application/vnd.ms-excel',
size: 8704,
base64: //xlsform encoded as base64
}
}
```
`` must match the `fieldName` options supplied when configure middleware stack.
- `name` is the name of xlsform
- `type` mime type of xlsform
- `size` size in bytes of the xlsform
- `base64` base64 encoded xlsform
## Multiparty Convertion
In `multiparty` convertion your have to make sure file field is single upload and its `name` match the `fieldName` options supplied when configure middleware stack.
```html
```
## Literature Reviewed
- [XLSForm](http://xlsform.org/)
- [XForm](http://opendatakit.github.io/odk-xform-spec/)