Tuesday, April 15, 2014

How To Create An Excel Data Sharing App

This post shows how easy it was to create the Excel Data Sharing app with the Flatmerge API and the Apps For Office API.

To create an Office App, download the Office Developer Tools for Visual Studio 2013 http://msdn.microsoft.com/en-us/library/office/dn510410(v=office.15).aspx. Install any updates. The current version is 1.1 (October, 2013), which has some very important updates. (1.0.1 is currently in NuGet and does not have some important features you will need.).

The Flatmerge Excel app is a "Task Pane App" which means it is an app that sits in a pane to the right of the Excel Window. Walk through the steps and Visual Studio will create your Hello World Task Pane app in just a few minutes http://msdn.microsoft.com/library/office/fp142161(v=office.15)#FirstAppWordExcelVS_Create.

The app interacts with Office (Excel in our case) through the Office Javascript API. The method getDataAsync is used to grab data from Excel and do something with it.

asyncResult.value.getDataAsync({ coerciontype: Office.CoercionType.Table, valueFormat: Office.ValueFormat.Formatted}, function (asyncResult2) {...


Here, we use the getDataAsync method and pass in the Table coerciontype option to specify the data as an Excel table, and the valueFormat: Formatted to use the formatted values instead of the raw data. This valueFormat option is new in V1.1 of the API, which makes it easy to get dates and times from Excel instead of the underlying integer date stored.

Flatmerge's upload API call takes in the Excel data and loads it up for sharing.
<form action="http://flatmerge.azurewebsites.net/Upload" method="post" enctype="multipart/form-data">
<input type="hidden" id="token" id="token" value="abcxyz" />
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="submit" />
</form>

(http://flatmerge.azurewebsites.net/Home/About)

This call is also asynchronous, but returns an initial success or failure result that is handled in the getDataAsync's callback and pops up a toast at the bottom of the Task Pane App. If the toast says "Upload successful", your Excel table can be shared with any other Excel user, or other apps easily.


Since the Office App is just HTML, Javascript, and CSS, it is easy to change colors, add logos, call external APIs, or do anything you want. 

When you create your own Office app, you can immediately install it locally and on friends and colleagues machines. Submit it to the Office App Store for public distribution http://dev.office.com

(The Flatmerge Excel Data Sharing App is free. Back us on Kickstarter)

Tuesday, April 1, 2014

The Flatmerge Kickstarter Project

Why Kickstarter?

Flatmerge was created as a simple API for users who want to share their data. Most data is stored in a format that works best with the software that it is created in. Each of these have varying differences like datatypes and storage formats, which makes it difficult to share the data across apps. Most apps support the OData protocol for data access, so this was an easy choice for the data protocol. 

It didn't take long for users to find interesting things to do with an API that makes it easy to share data. BI developers suggested an Excel app for sharing their data with others for collaboration. Soon they were happy with their new app!

Hundreds of users have downloaded the Excel app since then. Hundreds more users have also been using the Flatmerge.com web site (which is also just a web app that uses the API) to share their data.

Support The Flatmerge Project On Kickstarter

Now is your chance to make Flatmerge become what you want it to be!

There are many ways to back the project, starting at $1. At $10 you get 10Mb of storage space (the first 5Mb is free), and at $100 you get a lot more space and support. Support is not just "help", it is more like an interactive collaboration with you to add features and fix broken features that you are using. The rest of the pledges involve even more support/collaboration and customization.

The Future Of Flatmerge

The goal of this Kickstarter project is not to get funded, it is to guide the future of Flatmerge and grow it into what you want it to be. Tells us what that is! Back the project, we will work together.