Gneiss by Kerry Shih-Ping Chang | kerrychang [at]


Gneiss is a spreadsheet programming tool for creating interactive web applications that make use of backend data. We extend the familiar spreadsheet mataphor to let users send and retrive structured web service data from a spreadsheet editor, and create web GUI elements whose property values can be dynamically calculated using the spreadsheet data. Our system has many novel features:

  1. We design a "source panel" in our tool where the user enter a web API and view data returned from a data source. The user can replace any parts of the web API using spreadsheet cell values and extract desired fields from the returned data to the spreadsheet editor using drag-and-drop. This creates two-way data flow between the connceted data source and the spreadsheet editor. Moreover, using the dependency between spreadsheet cells, our tool is able to create parallel-running data extractions based on the user’s sequential demonstration.

  2. We present the structure of the extracted data in the spreadsheet using nested tables. Cells in a nested table can be used in formulas just like regular spreadsheet cells. A nested table can also be flatten for future operations.

  3. We integrate a web interface builder with the spreadsheet editor to allow users to create web interfaces and define two-way data bindings between GUI element properties and the spreadsheet data using spreadsheet languages. Our tool supports creating web applications with multiple-pages, dynamic content, and interactive behaviors such as animations.

  4. Our tool let users defined sorting and filtering rules using spreadsheet formulas. The sorting and filtering rules are constantly re-evaluted to keep the order up to date.
For more detail, please refer to our papers.


Kerry S. Chang and Brad A. Myers. "Creating Interactive Web Data Applications with Spreadsheets", Proceedings ACM UIST'2014. To appear.

Kerry S. Chang and Brad A. Myers. "A Spreadsheet Model for Using Web Service Data", Proceedings IEEE VL/HCC'2014. To appear. [local]

Watch Demo Video

Download the video (58 MB. Right click and choose "Save link as")


Gneiss incorporates a source panel (left) for loading web data sources, a spreadsheet editor (center) for storing and manipulating data, and a web interface builder (right) for creating web applications.

Gneiss (pronounced the same as “nice”) is a kind of rock. Here it stands for Gathering Novel End-user Internet Services using Spreadsheets.