Easily display, create, print, read, write or modify your Excel workbooks (both *.xls and *.xlsx) using a comprehensive Java Excel API.

No specific knowledge of Microsoft Office programming required.

Why JExcel

Need to incorporate a spreadsheet into Java application?

            // Simple JWorkbook-based application
            JFrame frame= new JFrame("Test application");

            frame.setDefaultCloseOperation (

            Container cp = frame.getContentPane();

            cp.setLayout( new BorderLayout());

            JWorkbook workbook = new JWorkbook();


            frame.setBounds(100, 100, 500, 500 );



JExcel gives all the power of Microsoft Excel: workbooks, formulas, full spreadsheet control. Easy to mix Java logic and Excel capabilities.

Do you want to embed the spreadsheet? Just add a few simple lines of code.

Now the spreadsheet is incorporated in the application. Of course, you want to manipulate it.

Fill cells with scientific data, statistics, measurement results, or any other data. As in the previous example, it takes just a few lines of code.

            // Gets reference to active worksheet

            Worksheet sheet=workbook.getActiveWorksheet();

            // Creates 2d double array and fills the range

            final int  ARRAY_SIZE = 5 ;

            double  dcount = 0 ;

            final double  double_array[][] =

            new  double[ARRAY_SIZE][ARRAY_SIZE] ;

            for(int i=0; i < ARRAY_SIZE; i++) {

            for (int j =0; j < ARRAY_SIZE ; j++)

            { double_array[i][j] = dcount++;}



Likewise, you can easily set up formulas within the sheet. Here, we’ve put in a label and added a sum for a row.

                // Adds comment and SUM formula

                Cell cell = sheet.getCell("D7");


                Cell sumcell = sheet.getCell("E7");



As you can see, with a few simple lines, you can easily integrate Excel into your Java applications.

                JPanel panel = new JPanel();

                JWorkbook workbook = new JWorkbook();

                panel.setLayout(new BorderLayout());


                Worksheet sheet = workbook.getActiveWorksheet();

                sheet.fillWithArray("A1:D6" , pricesArray);



Embed a workbook in Java Swing

Integrates like an ordinary Swing component. Open, save and print workbooks. Display a workbook in read-only or editable mode

Manage workbooks

Create new workbooks. Open existing workbooks. Save in any formats supported by Excel. Copy all worksheets from one workbook into another. Modify properties such as name, title, author, etc. Control password protection. Control window properties, such as caption, size, zoom and window state.

Manipulate cells and ranges

Get and set cell values, by coordinates, address or name. Manipulate ranges. Merge and unmerge cells and ranges. Customize cell appearance, including format, font, alignment, color and pattern.

Work with peers and threads

Directly interact with Microsoft Excel COM API from Java, using the included ComfyJ run-time for Application, Workbook, Worksheet, Range, and Cell. Control threading model.

Process application, workbook, and workbook events

Add Java listeners for application, workbook, and worksheet events. Run special code when workbooks are created, opened, saved, closed or previewed. Process worksheet events: activation and deactivation, changing values and selections, double-click and right-click events.

Manage worksheets

Access any worksheet within a workbook. Add, move or remove worksheets. Control worksheet properties.

Try the Demo

Run the demo jexceldemo.jnlp

MS Windows Runs on Microsoft Windows XP or later with:

  • Microsoft Excel 2000 or later;
  • JDK (JRE): 1.4.0 or later. Version 1.4.2 recommended;
  • Java™ WebStart. Version 1.4.2 recommended.
The JExcel Demo is a Windows program and cannot run under another operating system.
To see the Demo, you can do one of the following:
  • Download it and run on Microsoft Windows computer
  • Open this page directly from Windows.

Examples of Apps Our Customers Build

Licensing and Pricing

By using our products or any related documentation, you accept the Terms and Conditions of the Product Licence Agreement.

What You Get

  • Perpetual Development Licence
  • Free runtime distribution
  • Free minor version product updates
  • Free major version upgrade within 60 days of purchase date
  • Free Standard Support pack (55 hours)
  • No annual renewal fee
  • 15% discount on other TeamDev products

Per Developer


Per Project




Source Code


Support Renewal


Premium Support

Get Licences via Resellers

Technical FAQ

A: JExcel requires MS Excel to be installed in a system.

A: All versions starting from Excel 2000.

A: All versions starting from Windows XP.

A: Yes, JExcel provides corresponding methods that allow bulk writing data from Java to Excel documents and bulk reading data from Excel to Java.

A: You should include jexcel-1.7-full.jar library instead of jexcel-1.7.jar to classpath of your Java application. This full version contains all Excel wrappers.

Licensing FAQ

A: Our licensing is based on versions of JExcel. Having purchased the licence for our product you get the right to use the current major version of the product.

A: All minor version updates are free of charge. For example, if you have a licence to library version 1.x, you can receive all updates until the version 2.x is released. You can check the version of your licence in the jexcel.lic file.

A: Upon purchase of licence you will receive a licence archive. The archive will contain two JARs: development.jar and runtime.jar. Development.jar is the licence that should be used in development process. Runtime.jar should be used to distribute your application to end users. Inside the development.jar you can find the jexcel.lic file that contains information about your licence.

A: Major version upgrades should be purchased. You can upgrade your licence to a major version with a 25% upgrade discount. The licence upgrade includes renewal of the Standard Support pack

A: You can distribute unlimited number of copies of your product with our library enclosed. Please use Runtime Licence for distribution of your product.

A: Runtime Licence is provided free of charge.

A: Yes, you can purchase JExcel Source Code Licence; it is provided on a per developer basis. Please contact our sales team if you are interested in this option.

A: You may want to purchase a Project licence, which is more cost-effective in case there are 3 and more developers on the team.

A: The best solution would be to purchase the Unlimited licence, which covers any number developers and projects in one company.

A: No. The Project licence is tied to one project only.

A: Yes, our licences are tied to a company, not to a specific developer. You can transfer licences to other developers provided that the number of developers, working on your team equals the number of licences purchased.

Free Licenсes Programs

Free Licences for Academic Purposes

We provide licences for institutions, educators, students and researchers for the duration of the project or a study.

Apply You will need to submit a reference letter from your supervisor (for students) or proof of participation in research project.
Open Source™

Free Licences for Open-source Projects

We will provide you with a free licence that will be tied to a class name in your project.


Getting Help

Product Forums

You will need a Google ID to be able to post on forums, and you can do that

Note that your message will be automatically posted on the web.

Evaluation Support

Standard Support

Premium Support

JExcel is very easy to use and meets our expectations. Johannes M. Hug, Swiss Reinsurance Company
Product is extremely easy to use and set up — for me its a first class product … its ease of use is its main feature. Yashir, IDI Insurance Company Ltd.


We will use this name when writing to you.
We will send you the link for downloading evaluation key to this address. We will not give your email address to anybody else.
Tell us about your project so that we can give you hints on using our product in your app.