Spreadit - Spreadsheet data importing simplified and 100% in the browser.
Spreadit is an angular directive inspired by the guys at Conference Badge. It imports data from Excel or CSV as JSON so it
can be used in the browser or uploaded to the server. It supports header and column detection. Users can also rename and ignore columns before importing the data.

Install It
- Manual: download latest from here
- Bower:
bower install spreadit --save
- NPM:
npm install spreadit
See It In Action
Code Sample
HTML:
<link href="spreadit.css" type="text/css" rel="stylesheet"/>
<script src="angular.min.js"></script>
<script src="papaparse.min.js"></script>
<script src="xlsx.full.min.js"></script>
<script src="spreadit(.min).js"></script>
<button si-trigger="myId">Click Me To Import</button>
<si-column-manager
si-id="myId"
si-columns="columns"
si-exclude-unknown-columns="false"
si-sample-size="5"
si-allow-renaming="true"
si-post-processors="postProcessors"
si-change="doStuffWithData($data, $file, $type)">
</si-column-manager>
Javascript:
var app = angular.module('superDopeDemo', ['bg.spreadit']);
app.controller('MyCtrl', ['$scope', function ($scope) {
$scope.doStuffWithData = function(data, file, type) {
console.log('file type: %s', type);
console.log(data);
};
$scope.columns = [
{
title: 'Email',
property: 'emailAddress'
},
{
title: 'Last Name',
property: 'last_name'
},
{
title: 'First Name',
property: 'firstName',
aliases: ['first_name', 'first']
}
];
$scope.postProcessors = [
function (data) {
if (data.firstName || data.last_name) {
data.fullName = data.firstName + ' ' + data.last_name;
}
return data;
},
function (data) {
if (data.fullName) {
data.fullName = data.fullName.toUpperCase();
}
return data;
}
]
}]);