Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A software platform for rule-based transformation spreadsheet data from arbitrary to relational tables.



Building with Apache Maven

First, you need to clone the project into your directory

git clone

In order to build the executable JAR with dependencies, change to the project directory, where is pom.xml, and run the following command

mvn clean install

We recommend you to use Apache Maven 3.6.0 or more and JDK 8 or more

You may test the newly compiled and packaged JAR file with the following command:

java -jar target/TabbyXL-1.1.1-jar-with-dependencies.jar -input examples/data/smpl.xlsx -ruleset examples/rules/smpl.crl -output examples/results

or run the testing script


On Windows use the batch file


Note that, with this option, you should run java included in JDK, not JRE. Otherwise, you get the following message:

Exception in thread "main" java.lang.IllegalStateException

If you see this message, then, please, check that you run java included in JDK. You also can try to use "%JAVA_HOME%/bin/java" instead of java as follows.

"%JAVA_HOME%/bin/java" -jar target/TabbyXL-1.1.1-jar-with-dependencies.jar -input examples/data/smpl.xlsx -ruleset examples/rules/smpl.crl -output examples/results

If the program prints at the end something like this

Total number of
	tables: 4
	cells: 105
	not empty cells: 99
	labels: 50
	entries: 51
	label-label pairs: 0
	entry-label pairs: 219
	category-label pairs: 50
	categories: 17
	label groups: 17

then it works.


In order to run the executable JAR, you may use the following command with parameters

java -jar target/TabbyXL-1.1.1-jar-with-dependencies.jar <params>

-input <path>                      specify a path to an input excel workbook (*.xlsx)
-sheets <sheet indexes>            specify sheet indexes in the input excel workbook (e.g. "0-2,4,5,7-10")
-ruleset <path>                    specify a path to a ruleset file (e.g. *.crl (CRL), *.drl or *.dslr (Drools), or *.clp (JESS))
-categorySpec <path>               specify a path to a directory with category specifications in YAML files (*.cat)
-output <path>                     specify a path to a directory for outputting results
-ignoreSuperscript <true|false>    specify true to ignore superscript text in cells (false used by default)
-useCellText <true|false>          specify true to use cell values as text (false used by default)
-useShortNames <true|false>        specify true to use short names (just sheet names) for output files (false used by default)
-debuggingMode <true|false>        specify true to turn on debugging mode (false used by default)
-ruleEngineConfig <path>           specify optionally a path to a configuration file (*.properties) of a rule engine you prefer to use (e.g. Drools, JESS)
                                   (CRL-to-Java translation is used by default instead of a rule engine)
-help                              print this usage

Only two parameters are mandatory

  • -input <path>
  • -ruleset <path>

We recommend you to use JRE 8 or more


  • Alexey O. Shigarov
  • Vasiliy V. Khristyuk
  • Viacheslav V. Paramonov


Apache License, Version 2.0