All Projects â†’ michaelneu â†’ Webxcel

michaelneu / Webxcel

Licence: mit
🤔 A REST backend built with plain VBA Microsoft Excel macros. Yes. Macros.

Programming Languages

macros
77 projects
vba
158 projects

Projects that are alternatives of or similar to Webxcel

Requester
Powerful, modern HTTP/REST client built on top of the Requests library
Stars: ✭ 273 (-10.49%)
Mutual labels:  rest
Restyped
End-to-end typing for REST APIs with TypeScript
Stars: ✭ 287 (-5.9%)
Mutual labels:  rest
Slim Api Skeleton
Slim 3 API skeleton project for Composer
Stars: ✭ 296 (-2.95%)
Mutual labels:  rest
Product Ei
An open source, a high-performance hybrid integration platform that allows developers quick integration with any application, data, or system.
Stars: ✭ 277 (-9.18%)
Mutual labels:  rest
Nodejs Restful Api
How to create a RESTful CRUD API using Nodejs?
Stars: ✭ 285 (-6.56%)
Mutual labels:  rest
Jaguar
Jaguar, a server framework built for speed, simplicity and extensible. ORM, Session, Authentication & Authorization, OAuth
Stars: ✭ 286 (-6.23%)
Mutual labels:  rest
Creek
Ruby library for parsing large Excel files.
Stars: ✭ 270 (-11.48%)
Mutual labels:  excel
Spring Boot File Upload Download Rest Api Example
Spring Boot File Upload / Download Rest API Example
Stars: ✭ 300 (-1.64%)
Mutual labels:  rest
React Admin
A frontend Framework for building B2B applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Material Design
Stars: ✭ 18,525 (+5973.77%)
Mutual labels:  rest
Vulcain
Fast and idiomatic client-driven REST APIs.
Stars: ✭ 3,190 (+945.9%)
Mutual labels:  rest
Symlex
A lean framework stack for agile Web development based on Symfony and Vuetify
Stars: ✭ 278 (-8.85%)
Mutual labels:  rest
Sq
swiss-army knife for data
Stars: ✭ 275 (-9.84%)
Mutual labels:  excel
Reactgrid
Add spreadsheet-like behavior to your React app
Stars: ✭ 289 (-5.25%)
Mutual labels:  excel
Jagrid
Japanese-styled grid framework.
Stars: ✭ 275 (-9.84%)
Mutual labels:  excel
Horse
Fast, opinionated, minimalist web framework for Delphi
Stars: ✭ 295 (-3.28%)
Mutual labels:  rest
Fastexcel
Generate and read big Excel files quickly
Stars: ✭ 268 (-12.13%)
Mutual labels:  excel
Stubb
Specify REST API stubs using your file system.
Stars: ✭ 289 (-5.25%)
Mutual labels:  rest
Django Excel
A Django middleware to read, manipulate and write data in different excel formats: csv, ods, xls, xlsx and xlsm.
Stars: ✭ 300 (-1.64%)
Mutual labels:  excel
Http Rpc
Lightweight REST for Java
Stars: ✭ 298 (-2.3%)
Mutual labels:  rest
Gochart
A chart plotting tool implemented by Golang and Highcharts.
Stars: ✭ 293 (-3.93%)
Mutual labels:  excel

webxcel logo

license GitHub tag Github All Releases GitHub issues GitHub pull requests FOSSA Status

Webxcel creates a full-fledged RESTful web backend from your Microsoft Excel workbooks. It is written in 100% plain Visual Basic macros and comes with a lot of handy tools to help you build the next big thing.

Features

Rapid prototyping

Build your web applications using the autogenerated RESTful CRUD endpoints and the static file server. Webxcel even supports mapping worksheet relationships, so you can model your table schema as flexible as you wish.

To configure a new table, simply insert your column names in the first row of an empty sheet and make the cell of your primary key bold. References to other tables can be introduced using fk_<table> columns and foreign keys:

worksheet relationship mapping

When accessing GET /workbook/cities, webxcel will return a fully mapped JSON object (response formatted for better readability):

HTTP/1.1 200 OK
Content-Type: application/json
Server: Microsoft Excel/16.0
Content-Length: 200
Connection: close

[
  {
    "id": "1",
    "city": "Seattle",
    "states": {
      "short_name": "WA",
      "full_name": "Washington"
    }
  },
  {
    "id": "2",
    "city": "Springfield",
    "states": null
  }
]

Batteries already included

No need to spin up a cloud server or function-as-a-service provider, implement rich server side logic right in Microsoft Excel using the built-in tools you already know and love. Using Microsoft Excel's immersive charting, you can gather even deeper insights from your data.

Scalable

Webxcel supports scaling from a mere 10% to 400% for extreme detailed data insights. This makes it a perfect fit for small startups to global corporations. By default, webxcel projects are scaled 100%, but you can adjust this setting in the lower right corner of Microsoft Excel to fit your needs.

Ready for deployment

Many new devices come with Microsoft Office preinstalled, most of the time you won't have to do any setup at all. Deploying a project is as easy as dropping the file on the server and starting webxcel. Also backup is a no-brainer, simply copy and paste the project file to your backup location (e.g. a flash drive) and you're all set.

Future proof with compatibility in mind

Webxcel is built on Windows Sockets 2 and runs on any Microsoft Excel version starting from Microsoft Office 2007, but should work on any macro enabled setup.

Hassle-free PHP

Everybody hates PHP configurations. That's why webxcel ships with a PHP plugin that just works, no configuration needed. It's like serverless but better!

Missing something?

Check out the features project to get the latest news and ideas for webxcel, or file a new issue.

Getting started

To quickstart development, check out the example folder for a simple todo app using React and webxcel.

Creating new projects

The build.ps1 PowerShell script creates an empty webxcel project in build/webxcel.xlsm, which you can alter to create your table schema. You can also import the classes and modules by hand, but this will consume considerably more time since the import dialog only allows you to select one file at a time.

In order for the build script to succeed, you may have to make a few changes to your Excel settings. Open the Trust Center in the options menu, select Macro Settings and check the following options:

  • Enable all macros
  • Trust access to the VBA project object model

If you can't run the build script at all, use the following command to temporarily enable PowerShell scripts for the duration of your PowerShell session:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process

Running webxcel

Webxcel can be started using either the Main sub through the developer ribbon or by assigning it to an interactive component like a button. Once started, webxcel will serve all static files located in the same directory as your project's .xlsm.

During webxcel's runtime, Microsoft Excel will not respond. This is due to Visual Basic being executed on the main UI thread. As this is a known issue, webxcel creates a lockfile <project>.xlsm.lock, which you can delete to gracefully shut down the server. You also could force-quit Microsoft Excel, but this might result in the port being blocked from further usage until a reboot (webxcel will raise the error ErrorSocketBind whenever it can't bind to a specific port).

Contributing

To contribute, clone the repository, build an empty webxcel project and start hacking in the Visual Basic editor (Alt + F11). Once you've finished your contribution, export your classes or modules and create a pull request. As Visual Basic is case-insensitive, please check your exported classes to minimize renaming commits (e.g. after introducing a new variable Dim name and the editor globally renamed Name to name).

Is it any good?

Yes.

License

Webxcel is released under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].