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 (
    • javax.swing.WindowConstants.EXIT_ON_CLOSE
  • Container cp = frame.getContentPane();
  • cp.setLayout( new BorderLayout());
  • JWorkbook workbook = new JWorkbook();
  • cp.add(workbook);
  • frame.setBounds(100, 100, 500, 500 );
  • frame.setVisible(true);

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++;
    • }
  • }
  • sheet.fillWithArray("A1:E5", double_array);

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.setValue("Result:");
  • Cell sumcell = sheet.getCell("E7");
  • sumcell.setValue("=SUM(E1:E6)");

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());
  • panel.add(workbook);
  • 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

Getting Help

Support Resources

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.

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.

A: The fully-qualified name for a class is the package name followed by the class name, separated by a period (.). For example: com.mycompany.myproduct.MyClass

A: This can be any class of your application. The only requirement is that it should be included into your Java application class path.

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
  • No obligatory renewal fee
  • 15% discount on other TeamDev products

Per Developer






Source Code


Support Renewal


* Your country's tax fees may apply to licence purchases. They will be charged in addition to the prices specified.
* Prices are subject to change without prior notice from TeamDev. Request an official quote for the purpose of purchase processing.

Get Licences via Resellers

Become a Reseller

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: Project licence is bound to a single project you do, but it allows any number of developers in your company to work with our library.

A: When we say “project” we have in mind one product of your company including your future product versions or potential derivative works based on your product.

A: The best solution would be to purchase the Company–wide 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.

If you are doing an open source or academic project, you can apply to get a free licence. Please submit a request via Open Source or Academic tab on the evaluation form.


Commercial Open source Academic

With this licence you will be able to evaluate our product for 30 days.
The evaluation licence will not work after this time, so you will need to purchase the licence.

With this licence you will be able to evaluate our product for 30 days.
The evaluation licence will not work after this time. If you are doing an open source project, you can request a permanent licence via the link provided in the email you will receive.

With this licence you will be able to evaluate our product for 30 days.
The evaluation licence will not work after this time. You can request a licence for duration of your academic project via the link provided in the email you will receive.

You should have an existing open source project which has commits and some life period of the project.

We can provide licences only for projects distributed under non-viral licence (LGPL, Apache, etc.). Our library is proprietary and we will not be able to disclose its code.