What would a spreadsheet add-on be without being able to create multiple sheets? Multi-sheet has been a highly requested feature since the release of Excellentable, so we knew we had to choose this feature for the new release.
Since spreadsheet software is widely used, most of you already know what multi-sheet in a spreadsheet is. For those new to spreadsheet software and the multi-sheet feature, it is the ability to add, edit and manage sheets within a workbook.
What does Excellentable's multi-sheet feature do?
Excellentable now shows any formatting that did not import properly into Confluence. For example, in the error message below, the font Droid Sans is not supported by Excellentable so it was automatically replaced with the default font, Veradana.
Multi-sheet referencing is a very common feature and involves referencing a cell located in another sheet, by using some defined syntax or sheet name.
This feature allows the sharing of data between sheets, allowing your Excellentable to be even more dynamic. Most users who use spreadsheets need multiple sheets and it's highly important to access data from cells within those sheets. This makes using spreadsheets in Confluence much more efficient.
To make development more systematic, the whole development process was broken down to three key phases. These were:
Excellentable's existing robust code for a single sheet, now had to be extended to support multiple sheets. This was not an easy thing to accomplish and the best way the team thought to work on this was with the Agile ticket management hierarchy seen below.
Addteq's methodology focuses on Agile, so when developing new features, we continue our Agile practices. The team began development with focusing on UI & UX. Then went on to focus on the development of core functionalities, which surprising to them, had a lot of impact on other existing features like import, export and general formatting. So, the parallel development/improvement of different features had to be done as independent components and integrated at the end of every stage.
Excellentable currently so many UI related features, that the development team had to choose to create well designed, event driven UI components. Event driven UI components gave a real time experience to the user while working on a cell.
Laying the ground work for the multi-sheet feature actually began about a year ago. The user interface, spacing and sheet naming features had already been implemented. The only thing left to develop was to be able to use this previous build as a base and extend that functionality to include multiple sheets. The footer was already implemented but sheet management was disabled.
The multi-sheet functionality in Excellentable provides seamless management of spreadsheets in Confluence. Previously, the same functionality could be achieved, but users where required to add the same amount of macros as the number of sheets they wanted to have on the Confluence page. This violates one of ADDTEQ's key policies, which is KIS (keep it simple). Doing this while increasing functionality was getting harder to achieve. Excellentable's UI was modified with two points in mind, one being that any new features should be coherent & noticeable, and second, they must adhere to Addteq's add-on branding.
For example, having 10 rows of data in Sheet 1 and 20 rows of data in Sheet 2, sets the minimum view in edit mode to be 20 rows long. There is no need to have a page of documentation explaining this. The team decided to set it this way because changing the view port size while switching between sheets may destroy the user designed layout of the wiki page, as Sheet 1 is half the size of other.
Making coherent software while maintaining the usability helped to come to most of the design decisions, helping to shape all new features. If a user wants Sheet 1 to be the default sheet being displayed in view mode, then the user only needs to be on Sheet 1 when saving their work. Simple solution right? When taking the worst case scenario into consideration, the user's effort only increases by 3 clicks, maintaining balance between usability and comprehensibility. The team could have gone a different route by giving the user a separate dialog to set the default sheet.
Multi-sheet import support was added for .xlsx and .xls file formats. Extending the ability to import spreadsheets into Confluence. Only a high level change was required. To understand import better, let me give you a brief description. Starting from the front end, the file you want to import is sent to the backend, for example, Java. Java then parses that file into a JSON format. Then the parsed data is returned to the front end, where all the data is loaded into view. You can see the front end completed design in the video below.
One major issue the team faced while extending the functionality of Excellentable was adapting to the different spreadsheet standards for .xlsx files. We took the ECMA-376 global standard and Microsoft's extended global standard into account while designing. Having more than 70% of the spreadsheet market ensured that Excellentable can follow Microsoft's Excel standard, as the primary standard. However, this caused a problem in supporting other major spreadsheet software. For example, Numbers- Google's spreadsheet, uses various features that are not present in Excel and vice versa. So Addteq had to define our methods in such a way that all the features would work with other editors too. After hundreds of workarounds and developments, we were able to achieve the desired functionality of having multiple file formats available for exporting.
The release of Multi-sheet capabilities in Excellentable allows users to work seamlessly in spreadsheets in Confluence. Excellentable allows users the ability to not be stuck in silos while working in Confluence.