Welcome to Netxilia
Netxilia is an open source online spreadsheet application written completely in Java.
Netxilia is focused on collaborative access to spreadsheets. It offers most of the key functionalities present
in applications like Microsoft Excel or Google Spreadsheets.
To improve the performance and to increase the limits of the spreadsheet storage,
data is stored in regular databases in an easy-to-read format.
Netxilia is available on the Sourceforge site here.
A bundle with Jetty and some popular database drivers is available for Windows and Linux.
You can also download only the webapp if you want to test it within your server.
Where can you use Netxilia?
- Netxilia can be used as-is as a spreadsheet application for your organization.
Being open source we'll encourage the community to contribute to enrich its functionality
(new functions and templates) for a wide variety of purposes.
- Netxilia can be used as an enhanced database viewer/editor.
Netxilia's storage is a regular relational database.
It tries to accommodate a given table structure.
The data that differentiate a spreadsheet from a relational table - basically formatting and formulas -
are stored in a separate table linked to the data table.
- Netxilia can be embedded as an administration console info database intensive applications.
Thus developers are free to concentrate on the client interface and less on the administration interface.
- As all the spreadsheets' data can be accessible via REST/JSON, one can develop web applications in any
programming language using Netxilia as a back-end. Business rules can be very easily defined this way.
Spreadsheets are a great way to express business rules. Even though in the commercial world or free (but closed source)
there are well-established leaders, in the open source world the situation is less established.
Netxilia is a completely autonomous system using either internal or external relational database.
There are several open-source applications similar to Netxilia, but very few developed in Java.
The programming language is important as we see Java as one of the most important language for the open source
business application. And we believe the key to the success of an open source project is its ability to be extensible
and to attract contributors.
Netxilia already has numerous functionalities found in the spreadsheet applications you're already used to.
We chose to implement in the first version those functionalities that made most sense to us for a regular usage.
We're committed to add the missing functionalities based on the community demands. So if you'd like to start using Netxilia,
but some key functionalities missing prevent you to do so, drop us a line at firstname.lastname@example.org
and we'll do our best to integrate your ideas in our next releases.
So here is a non-exhaustive list of Netxilia's functionalities:
- supports Excel-like formulas
- inline formula edit, formatting, styling
- inter-sheet references
- around 150 functions in the mathematical, statistical, date, number and text treatment
- line, bar flash charts
- Excel import/export
- JSON import/export
- PDF export and print
- sorting, filtering
- simple REST API to access spreadsheets and cells
- multiuser simultaneous edit
- range names (aliases)
Not depending on an existing library (e.g. POI) or storage format (e.g. Excel file), we have the freedom to propose functionalities
that are not (yet ;) present into the other solutions.
Even though the interface may look familiar to you, there are some differences that may improve greatly
the way you work and share your work inside your organization.
- The workbook as you're used to is a collection of several spreadsheets that can easily communicate with each other.
As Netxilia's focus is on organization-scale spreadsheet system, the workbook in Netxilia's acceptance is a collection of tens, hundreds of spreadsheets sharing data.
What they have in common is that they are stored in the same database. Thus when you open an entry in Netxilia, you open a spreadsheet only, not an entire workbook!.
- Spreadsheet edit interface focus both on performance and collaboration. When you open the spreadsheet editor instead of one table you have three!
- The main one is for the spreadsheet's regular data.
- The bottom one contains different calculations (totals) based on the regular data and other footers.
This allow you not only to have all the time in view the totals when you work with big quantity of data but also to improve the storage performance
(keeping potentially different data types in separate database tables).
- And finally a floating table is a mini-spreadsheet that accompanies the main spreadsheet, but it's private to each user.
- The treeview. Click on the "tree" button and Netxilia will add a "expand/collapse" button whenever a row is indented compared
to the next rows
- The auto-insert row - when toggled, whenever you press Enter a new row is inserted under the current row and the cursor moves to this new row.
This allows you to quickly insert data in the middle of the spreadsheet.
- The quick filter - click filter button (or F7) in a cell and Netxilia will keep only the rows having
on the same column a value equal to the selected cell's value.
- The formula filter - click formula filter button in a cell and Netxilia will keep only the rows
for which the formula from the selected cell is true.
- Integrated user and permission management. Netxilia focuses on multiple user environments.
To allow organization to quickly start using the application, an easy-to-use user and permission management tools is included. In the SYSTEM workbooks there is a spreadsheet containing all the users in the system
their password and their role (regular user or administrator). Then in each workbook, a special spreadsheet called permissions contains for each sheet who can read it and write it.
- CSS based style management. To style spreadsheets, Netxilia leverages the CSS technology. This is quite easy to use: a special spreadsheet called styles can be included in any workbook.
In this spreadsheet you can define style names and their definition (you can even re-define built-in styles like b that is used for bold!). Then you can use the different style functions for value-based styling or
you can set directly a style you defined.
- Control cell's look via formulas. As described before you can use formulas to change a cell's styling dynamically or the text displayed in the cell. See more on DISPLAYINTERVALS, DISPLAYDECODE, STYLEINTERVALS, STYLEDECODE functions
- Advanced aliases: the edition interface lets you easily define an alias for a column (an textbox is present under each column header)
In a formula you can then reference a given cell from that column. E.g. let's say column C is named "Quantity". A formula = Quantity 2 + 3 references the 2nd row from this column.
- Quick cell edit. It happens sometimes to have long formulas inside the cells, but regularly you only change one parameters of this formulas. What you do is double-click (or F2) on the cell, move the cursor close to your number and change it.
Imagine you have a formula like: =-PV(D16, D13/12, D18) + 10*2 and you want to quickly change only the 2 parameter. By simply surrounding it with parentheses =-PV(D16, D13/12, D18) + 10*(2)
whenever you type a number in this cell, only that part of the formula will be change. You can still modify the formula by double-clicking in the cell!
We'd like to say a special thank to all these folks who built these nice pieces of technology.
- Java 1.6+
- Jersey JAX-RS
- jakarta common libraries
- Joda time
- POI - for excel export
- itext - for PDF
- Google collections
- different jquery plugins like form, validate, treeview, ...
For database access, Netxilia uses spring-jdbc and a custom DDL library (derived from DDLUtils). It was successfully tested with H2, Derby, PostgreSQL, MySQL.
Netxilia is licensed under LGPL v3 license.