Spire.XLS for Java
Java Excel Library – Create Read Modify Print Convert Excel Documents in Java
- Overview
- Features
- Support
- What's New
- Live Demo

Spire.XLS for Java is a professional Java Excel API that enables developers to create, manage, manipulate, convert and print Excel worksheets without using Microsoft Office or Microsoft Excel.
Spire.XLS for Java supports both for the old Excel 97-2003 format (.xls) and for the new Excel 2007, Excel 2010, Excel 2013, Excel 2016 and Excel 2019 (.xlsx, .xlsb, .xlsm), along with Open Office (.ods) format. Spire.XLS for Java offers a wide range of features of operating Excel worksheets on Java applications, such as creating, reading, editing, converting and printing Excel worksheets, finding/replacing data, creating charts, inserting/extracting/deleting textboxes, creating auto filters, reading/writing hyperlinks, creating/modifying/removing tables, merging/unmerging cells and files, grouping/ungrouping rows and columns, freezing/unfreezing panes, adding digital signatures, encrypting/decrypting Excel workbooks, copy rows/columns/cells with formatting etc.
-
Convert
-
Export
-
Validate
-
Formula
-
Format
-
Chart
-
Pivot Table
-
Group
-
Merge
-
Highlight
Convert Excel to PDF
Whenever you need to share an important Excel report with a partner, it's best to convert the file to PDF to ensure it looks the same as it does on your device.

Export Data from Database to Excel
When data is exported from a database to Excel, it can be analyzed and visualized, as well as viewed and processed by users who are not database users.

Apply Data Validation
Data validation in Excel controls what kind of data can be entered into a certain cell, which ensures that all data entries are accurate and consistent.

Insert Formulas and Functions
Formula is an expression that calculates values in a cell or in a range of cells, while function is a predefined formula already available in Excel. Both formulas and functions are very useful when you need to calculate numbers or solve math problems in Excel.

Apply Conditional Formatting
Conditional formatting is a helpful feature that allows applying special formats to cells meeting specific criteria. It is often used to emphasize or differentiate data stored in worksheets.

Create a Chart
Chart is a fantastic tool to visually group and analyze data. It provides the reader with the structure of the data set and displays the data in a graphical representation, making it easier for most users to see the data.

Create a Pivot Table
Pivot table is a kind of interactive table that allow users to quickly categorize, calculate, summarize and analyze large amounts of data in a concise tabular format.

Group Rows or Columns
For worksheets with large amounts of data, grouping rows or columns that contain similar information can make the worksheet more compact and understandable.

Merge Excel Files
Merging Excel files with associated content can help us work with worksheet data more easily and also make it easier to share and read the contents of our workbooks.

Find and Highlight
You can find all cells containing a specific value and highlight them with the same background color to make the value outstanding and more easily to be found out.

JAVA
Standalone Java Component
100% independent Java Excel class library
Doesn't require Microsoft Office installed on system.
VERSION
- Excel 97-2003
- Excel 2007
- Excel 2010
- Excel 2013
- Excel 2016
- Excel 2019
- OpenOffice
OPERATION
Powerful Toolset, Multichannel Support
-
Import and Export Data
-
Reports
-
Manage Comments
-
Work with Pivot Table
-
Work with Excel Charts
-
Images and Shapes
-
Find Replace Highlight
-
Manage Hyperlinks
-
Print
-
Header and Footer
-
Text and Image Watermark
-
Conditional Formatting
-
Excel Formula
-
Set auto-filters
& Page Breaks -
Merge Split Cells
and Files -
Protect, Encrypt, Decrypt
-
Add Digital Signature
CONVERSION
Convert File Documents with High Quality
-
TEXT
-
XPS
-
SVG
-
PDF
-
XML
-
Image


XLsx,XLSM,XLSB,ODS

-
CSV
-
HTML
-
PNG
-
BMP
-
JPEG
-
EMF
-
TIFF

-
Chart
MAIN FUNCTION
Only Spire.XLS for Java, No Microsoft Office
Spire.XLS for Java is a totally independent Excel library, Microsoft Office or Microsoft Excel is not required in order to use Spire.XLS for Java.Support a Rich Set of Excel Elements
Spire.XLS for Java supports a rich set of Excel elements, including comment, pivot table, charts, shapes, tables, images, hyperlinks, reports, add digital signature, text/image watermark, Excel formula and many more. Spire.XLS for Java also embeds many flexible options for displaying worksheets, such as page breaks, zoom-setting, set number formats, freeze panes, headers/footers, print excel files, print paper size and print area etc.Easy Integration
Spire.XLS for Java can be easily integrated into Java applications.Commercial Edition $999
Compared with Free Spire.XLS for Java, the commercial edition of Spire.XLS for Java has no limitation on the number of worksheets and rows. It is more comprehensive in processing Excel files.
Free Edition $0
Free version is limited to 5 sheets per workbook and 200 rows per sheet. This limitation is enforced during reading or writing XLS files. When converting Excel files to PDF files, you can only get the first 3 pages of PDF file.
GET STARTED
Free Trials for All Advanced Solutions
Here is a brief summary of Spire.XLS for Java features.
File Format Supports
- Spire.XLS for Java offers support both for the old Excel 97-2003 format (.xls) and for the new Excel 2007,Excel 2010, Excel 2013, Excel 2016 and Excel 2019 (.xlsx, .xlsb, .xlsm), along with Open Office(.ods) format.
- Load and save documents in the tab delimited file format.
- Comprehensive support of the CSV format to interact with a variety of applications.
- Easily extract text by saving in plain text format.
Conversion
- Excel to HTML/XML/CSV
- XML/CSV to Excel
- Excel to Image
- Excel to Text
- Excel to PDF
- Excel to XPS
- Excel to SVG
Contents Features
- Create and Edit Excel
- Find and Replace Data
- Print excel files
- Import/Export data from a DataTable, DataView, Array, DataGrid etc.
- Save Excel to file/Stream or as web response
- Create charts
- Read and write hyperlinks
- Create auto filters
- Implement Data Sorting
- Implement Data Validations
- Merge/Unmerge Cells and files
- Group/UnGroup Rows and Columns
- Insert/Delete or Hide Rows, Columns and Sheets
- Calculate Complex Excel Formula
- Freeze/Unfreeze Panes
- Insert Hyperlinks to link data
- Protect/Unprotect Worksheets
- Create Pivot Tables
- Encrypt/Decrypt Files
- Load/Save Excel VBA
- Merge data into Excel with MarkerDesigner
- Add digital signature
Formatting Features
- Apply all characters formatting in the cells including fonts, colors, effects, fill and shading
- Apply all the Number Format Settings (supported in MS Excel) for the cells.
- Set all types of Text Alignment settings.
- Apply different kinds of Font Settings for the cells.
- Apply different Colors to Cells, Fonts, Gridlines, Graphic objects etc.
- Apply different Rich Text formatting in a single cell.
- Apply different Border Settings on cells.
- Apply different Background Patterns on cells.
- Apply gradient Background Patterns on cells.
- Apply Format Settings on a Worksheet, Row, Column or a range of cells etc.
Page Setup Features
- Adjust your page orientation, scaling, paper size.
- Specify your margins and page centering.
- Create or edit your header and/or footer with image.
- Set print area, print titles, or turn on gridlines etc.
- Managing Page Breaks
We guarantee one business day Forum questions Reply. |
We guarantee one business day E-mail response. |
Free Customized service for OEM Users. |
|||||||||||
Skype name: iceblue.support |
Apply for a Free Trial License File. |
||||||||||||
This is the list of changelogs of Spire.XLS for Java New release and hotfix. You can get the detail information of each version's new features and bug solutions.
Version: 15.4.0
Category | ID | Description |
New feature | - | Supports creating a slicer using table data.
Workbook wb = new Workbook(); //Get the first worksheet of workbook Worksheet worksheet = wb.getWorksheets().get(0); worksheet.getRange().get("A1").setValue("fruit"); worksheet.getRange().get("A2").setValue("grape"); worksheet.getRange().get("A3").setValue("blueberry"); worksheet.getRange().get("A4").setValue("kiwi"); worksheet.getRange().get("A5").setValue("cherry"); worksheet.getRange().get("A6").setValue("grape"); worksheet.getRange().get("A7").setValue("blueberry"); worksheet.getRange().get("A8").setValue("kiwi"); worksheet.getRange().get("A9").setValue("cherry"); worksheet.getRange().get("B1").setValue("year"); worksheet.getRange().get("B2").setValue2(2020); worksheet.getRange().get("B3").setValue2(2020); worksheet.getRange().get("B4").setValue2(2020); worksheet.getRange().get("B5").setValue2(2020); worksheet.getRange().get("B6").setValue2(2021); worksheet.getRange().get("B7").setValue2(2021); worksheet.getRange().get("B8").setValue2(2021); worksheet.getRange().get("B9").setValue2(2021); worksheet.getRange().get("C1").setValue("amount"); worksheet.getRange().get("C2").setValue2(50); worksheet.getRange().get("C3").setValue2(60); worksheet.getRange().get("C4").setValue2(70); worksheet.getRange().get("C5").setValue2(80); worksheet.getRange().get("C6").setValue2(90); worksheet.getRange().get("C7").setValue2(100); worksheet.getRange().get("C8").setValue2(110); worksheet.getRange().get("C9").setValue2(120); //Get slicer collection XlsSlicerCollection slicers = worksheet.getSlicers(); //Create a super table with the data from the specific cell range. IListObject table = worksheet.getListObjects().create("Super Table", worksheet.getRange().get("A1:C9")); int count = 3; int index = 0; for (Object styletype : SlicerStyleType.values()) { SlicerStyleType type = (SlicerStyleType)styletype; count += 5; //Add a Slicer through pivot table data : here invoke Add(IListObject, string, int) api. String range = "E" + count; index = slicers.add(table, range.toString(), 0); //Style setting XlsSlicer xlsSlicer = slicers.get(index); xlsSlicer.setName("slicers_" + count); xlsSlicer.setStyleType(type); } //Save to file wb.saveToFile(outputFile_xlsx, ExcelVersion.Version2013); |
New feature | - | Supports creating a slicer using pivot table data.
Workbook wb = new Workbook(); //Get the first worksheet of workbook Worksheet worksheet = wb.getWorksheets().get(0); worksheet.getRange().get("A1").setValue("fruit"); worksheet.getRange().get("A2").setValue("grape"); worksheet.getRange().get("A3").setValue("blueberry"); worksheet.getRange().get("A4").setValue("kiwi"); worksheet.getRange().get("A5").setValue("cherry"); worksheet.getRange().get("A6").setValue("grape"); worksheet.getRange().get("A7").setValue("blueberry"); worksheet.getRange().get("A8").setValue("kiwi"); worksheet.getRange().get("A9").setValue("cherry"); worksheet.getRange().get("B1").setValue("year"); worksheet.getRange().get("B2").setValue2(2020); worksheet.getRange().get("B3").setValue2(2020); worksheet.getRange().get("B4").setValue2(2020); worksheet.getRange().get("B5").setValue2(2020); worksheet.getRange().get("B6").setValue2(2021); worksheet.getRange().get("B7").setValue2(2021); worksheet.getRange().get("B8").setValue2(2021); worksheet.getRange().get("B9").setValue2(2021); worksheet.getRange().get("C1").setValue("amount"); worksheet.getRange().get("C2").setValue2(50); worksheet.getRange().get("C3").setValue2(60); worksheet.getRange().get("C4").setValue2(70); worksheet.getRange().get("C5").setValue2(80); worksheet.getRange().get("C6").setValue2(90); worksheet.getRange().get("C7").setValue2(100); worksheet.getRange().get("C8").setValue2(110); worksheet.getRange().get("C9").setValue2(120); // Get pivot table collection PivotTablesCollection pivotTables = worksheet.getPivotTables(); //Add a PivotTable to the worksheet CellRange dataRange = worksheet.getRange().get("A1:C9"); PivotCache cache = wb.getPivotCaches().add(dataRange); //Cell to put the pivot table PivotTable pt = worksheet.getPivotTables().add("TestPivotTable", worksheet.getRange().get("A12"), cache); //Drag the fields to the row area. IPivotField pf = pt.getPivotFields().get("fruit"); pf.setAxis(AxisTypes.Row); IPivotField pf2 = pt.getPivotFields().get("year"); pf2.setAxis(AxisTypes.Column); //Drag the field to the data area. pt.getDataFields().add(pt.getPivotFields().get("amount"), "SUM of Count", SubtotalTypes.Sum); //Set PivotTable style pt.setBuiltInStyle(PivotBuiltInStyles.PivotStyleMedium10); //Get slicer collection XlsSlicerCollection slicers = worksheet.getSlicers(); //Add a Slicer through pivot table data: here invoke Add(IPivotTable, string, int) api. int index = slicers.add(pt, "E12", 0); XlsSlicer xlsSlicer = slicers.get(index); xlsSlicer.setName("test_xlsSlicer"); xlsSlicer.setWidth(100); xlsSlicer.setHeight(120); xlsSlicer.setStyleType(SlicerStyleType.SlicerStyleLight2); xlsSlicer.isPositionLocked(true); //Get SlicerCache object of current slicer XlsSlicerCache slicerCache = xlsSlicer.getSlicerCache(); slicerCache.setCrossFilterType(SlicerCacheCrossFilterType.ShowItemsWithNoData); //Style setting XlsSlicerCacheItemCollection slicerCacheItems = xlsSlicer.getSlicerCache().getSlicerCacheItems(); XlsSlicerCacheItem xlsSlicerCacheItem = slicerCacheItems.get(0); xlsSlicerCacheItem.isSelected(false); XlsSlicerCollection slicers_2 = worksheet.getSlicers(); IPivotField r1 = pt.getPivotFields().get("year"); int index_2 = slicers_2.add(pt, "I12", r1); XlsSlicer xlsSlicer_2 = slicers.get(index_2); xlsSlicer_2.setRowHeight(40); xlsSlicer_2.setStyleType(SlicerStyleType.SlicerStyleLight3); xlsSlicer_2.isPositionLocked(false); //Get SlicerCache object of current slicer XlsSlicerCache slicerCache_2 = xlsSlicer_2.getSlicerCache(); slicerCache_2.setCrossFilterType(SlicerCacheCrossFilterType.ShowItemsWithDataAtTop); //Style setting XlsSlicerCacheItemCollection slicerCacheItems_2 = xlsSlicer_2.getSlicerCache().getSlicerCacheItems(); XlsSlicerCacheItem xlsSlicerCacheItem_2 = slicerCacheItems_2.get(1); xlsSlicerCacheItem_2.isSelected(false); pt.calculateData(); //Save to file wb.saveToFile("out.xlsx", ExcelVersion.Version2013); |
New feature | - | Supports removing slicers.
Workbook wb = new Workbook(); wb.loadFromFile(inputFile); //Get slicer collection of first worksheet Worksheet worksheet_1 = wb.getWorksheets().get(0); XlsSlicerCollection slicers = worksheet_1.getSlicers(); // Remove the first slicer by index slicers.removeAt(0); XlsSlicer slicer = worksheet_1.getSlicers().get(1); // Remove second slicer by object worksheet_1.getSlicers().remove(slicer); Worksheet worksheet_2 = wb.getWorksheets().get(2); // Remove all slicers worksheet_2.getSlicers().clear(); //Save to file wb.saveToFile(outputFile_xlsx, ExcelVersion.Version2013); |
New feature | - | Supports modifying slicers.
Workbook wb = new Workbook(); wb.loadFromFile(inputFile); //Get the first worksheet of workbook Worksheet worksheet = wb.getWorksheets().get(0); // Get slicer collection XlsSlicerCollection slicers = worksheet.getSlicers(); //Style setting XlsSlicer xlsSlicer = slicers.get(0); xlsSlicer.setStyleType(SlicerStyleType.SlicerStyleDark4); xlsSlicer.setCaption("Slicer"); xlsSlicer.isPositionLocked(true); XlsSlicerCacheItemCollection slicerCacheItems = xlsSlicer.getSlicerCache().getSlicerCacheItems(); XlsSlicerCacheItem xlsSlicerCacheItem = slicerCacheItems.get(0); xlsSlicerCacheItem.isSelected(false); //Get SlicerCache object of current slicer XlsSlicerCache slicerCache = xlsSlicer.getSlicerCache(); slicerCache.setCrossFilterType(SlicerCacheCrossFilterType.ShowItemsWithNoData); //Save to file wb.saveToFile(outputFile_xlsx, ExcelVersion.Version2013); |
New feature | - | Supports retrieving slicer information.
Workbook wb = new Workbook(); wb.loadFromFile(inputFile); // Get slicer collection of first worksheet Worksheet worksheet = wb.getWorksheets().get(0); XlsSlicerCollection slicers = worksheet.getSlicers(); StringBuilder builder = new StringBuilder(); builder.append("slicers.Count:" + slicers.getCount()+"\r "); XlsSlicer xlsSlicer = slicers.get(1); builder.append("xlsSlicer.Name:" + xlsSlicer.getName()+"\r "); builder.append("xlsSlicer.Caption:" + xlsSlicer.getCaption()+"\r "); builder.append("xlsSlicer.NumberOfColumns:" + xlsSlicer.getNumberOfColumns()+"\r "); builder.append("xlsSlicer.ColumnWidth:" + xlsSlicer.getColumnWidth()+"\r "); builder.append("xlsSlicer.RowHeight:" + xlsSlicer.getRowHeight()+"\r "); builder.append("xlsSlicer.ShowCaption:" + xlsSlicer.isShowCaption()+"\r "); builder.append("xlsSlicer.PositionLocked:" + xlsSlicer.isPositionLocked()+"\r "); builder.append("xlsSlicer.Width:" + xlsSlicer.getWidth()+"\r "); builder.append("xlsSlicer.Height:" + xlsSlicer.getHeight()+"\r "); //Get SlicerCache object of current slicer XlsSlicerCache slicerCache = xlsSlicer.getSlicerCache(); builder.append("slicerCache.SourceName:" + slicerCache.getSourceName()+"\r "); builder.append("slicerCache.IsTabular:" + slicerCache.isTabular()+"\r "); builder.append("slicerCache.Name:" + slicerCache.getName()+"\r "); XlsSlicerCacheItemCollection slicerCacheItems = slicerCache.getSlicerCacheItems(); XlsSlicerCacheItem xlsSlicerCacheItem = slicerCacheItems.get(1); builder.append("xlsSlicerCacheItem.Selected:" + xlsSlicerCacheItem.isSelected() +"\r "); FileWriter fw = new FileWriter(outputFile_T); fw.write(builder.toString()); fw.flush(); fw.close(); wb.dispose(); |
Bug | SPIREXLS-5569 | Fixes the issue that OLE objects failed to open correctly after converting Excel to XLSB format. |
Bug | SPIREXLS-5673 | Fixes the issue that alignment was incorrect when converting Excel to PDF. |
Bug | SPIREXLS-5752 | Optimizes the text rendering effect of grouped shapes when converting Excel to PDF. |
Bug | SPIREXLS-5757 | Fixes the issue that some formula values were calculated incorrectly when converting Excel to images. |
Version: 15.3.1
Category | ID | Description |
Bug | SPIREXLS-5698 | Fixes the issue that the decimal parts were lost when setting cell font size. |
Bug | SPIREXLS-5699 | Fixes the issue that the embedded image failed to display when converting Excel document to HTML document. |
Bug | SPIREXLS-5720 | Fixes the issue that the program threw the exception 'NullPointerException' when loading Excel document. |
Version: 15.2.1
Category | ID | Description |
Bug | SPIREXLS-5575 | Fixes the issue that the program threw a "NullPointerException" when loading an XLSX document. |
Bug | SPIREXLS-5668 | Fixes the issue that incorrect colors existed when converting Excel to images. |
Bug | SPIREXLS-5685 | Fixes the issue that incomplete content displayed when converting Excel to PDF. |
Version: 15.1.3
Category | ID | Description |
Bug | SPIREXLS-5559 | Fixes the issue that the program threw an exception when calculating values using the workbook.calculateAllValue(). |
Bug | SPIREXLS-5617 | Fixes the issue that the results of formulas were incorrect when converting worksheets to images. |
Bug | SPIREXLS-5636 | Fixes the issue that inconsistency occurred when converting Excel documents to PDF documents. |
Bug | SPIREXLS-5645 | Fixes the issue that the program threw a java.lang.NumberFormatException exception when loading HTML documents. |
Bug | SPIREXLS-5658 | Fixes the issue that "Invalid ValidationType string val" occurred when loading XLSX documents. |
Bug | SPIREXLS-5663 | Fixes the issue that the title of the created chart overlapped with the chart's data. |
Bug | SPIREXLS-5664 | Fixes the issue that failed to add rich text in merged cells. |
Bug | SPIREXLS-5676 | Fixes the issue that the layout of contents was incorrect when converting worksheets to images. |
Version: 15.1.0
Category | ID | Description |
New feature | SPIREXLS-5600 | Support setting global custom font folder.
Workbook.setGlobalCustomFontsFolders(new String[]{}); |
Bug | SPIREXLS-5345 | Fixes the issue that the text placement was incorrect when converting Excel to PDF. |
Bug | SPIREXLS-5568 | Fixes the issue that the seconds data was inaccurate when reading time values from cells. |
Bug | SPIREXLS-5619 | Fixes the issue that the scaling ratio changed after copying the worksheet. |
Bug | SPIREXLS-5634 | Fixes the issue that the program threw an "unknown image format" exception when loading Excel document containing webp format images. |
Bug | SPIREXLS-5646 | Adjusts the purchase link in the warning message worksheet. |
Version: 14.12.0
Category | ID | Description |
Bug | SPIREXLS-5553 | Fixes the issue that the content formatting was inconsistent when converting HTML documents to Excel documents. |
Bug | SPIREXLS-5568 | Fixes the issue that the icons of the added OLE objects were displayed incorrectly. |
Version: 14.11.0
Category | ID | Description |
Bug | SPIREXLS-5446 | Fixes the issue that the program threw "Specified argument was out of the range of valid values" when converting XLSX to XLSB. |
Bug | SPIREXLS-5493 | Fixes the issue that incorrect effect occurred when using Worksheet.autoFitColumn. |
Bug | SPIREXLS-5516 | Fixes the issue that content got lost when converting Excel to PDF. |
Bug | SPIREXLS-5526 | Fixes the issue that font sizes were inconsistent after saving some Excel files. |
Version: 14.9.8
Category | ID | Description |
New feature | SPIREXLS-5371 | Supports the revision function.
Workbook workbook = new Workbook(); workbook.loadFromFile("input.xlsx"); workbook.setTrackedChanges(true); workbook.acceptAllTrackedChanges(); workbook.saveToFile("output.xlsx", ExcelVersion.Version2013); workbook.dispose(); |
New feature | SPIREXLS-5362 | Optimizes the speed of converting Excel documents to HTML documents. |
Bug | SPIREXLS-5149 | Fixes the issue that print area settings are not fully copied when duplicating worksheets. |
Bug | SPIREXLS-5295 | Fixes the issue that some data is incorrect when converting Excel documents to PDF documents. |
Bug | SPIREXLS-5368 | Fixes the issue that chart contents are lost when converting worksheets to images. |
Bug | SPIREXLS-5368 | Fixes the issue that the program throws an exception "Input string was not in the correct format." when converting charts to images. |
Bug | SPIREXLS-5432 | Fixes the issue that the program throws a java.lang.IllegalArgumentException exception when loading Excel documents. |
Bug | SPIREXLS-5435 | Fixes the issue that conditional formatting is lost when converting Excel documents to XML documents and then back to Excel documents. |
Bug | SPIREXLS-5441 | Fixes the issue that the program throws a java.lang.OutOfMemoryError exception when converting Excel documents to PDF documents. |
Bug | SPIREXLS-5442 | Fixes the issue that fonts are incorrect when converting Excel documents to PDF documents. |
Version: 14.8.2
Category | ID | Description |
New feature | SPIREXLS-5147 | Provides the hideCategoriTags method to support hiding category labels.
Chart chart = sheet.getCharts().get(0); String[] labels = chart.getCategoryLabels(); chart.hideCategoryLabels(new String[] { labels [0], labels [1], ...} ); |
New feature | SPIREXLS-5338 | Supports embedding images in cells.
worksheet.getCellRange("B1").insertOrUpdateCellImage("D:\\vs1.png",true); |
Bug | SPIREXLS-5331 | Fixes the issue that caused incorrect content when saving an Excel document and opening it in Microsoft Excel 2016. |
Bug | SPIREXLS-5337 | Fixes the issue that resulted in incorrect pivot table data calculation. |
Version: 14.7.5
Category | ID | Description |
Bug | SPIREXLS-5279 | Fixed the issue that some formula values are calculated incorrectly when saving Excel files. |
Bug | SPIREXLS-5281 | Fixed the issue that the data points of charts were incorrectly positioned after converting Excel to PDF. |
Bug | SPIREXLS-5282 | Fixes the issue that the parameters received by the createGroup method for pivot table grouping were incorrect. |
Bug | SPIREXLS-5288 | Fixes the issue that the trend line added to a chart was not displayed in the WPS tool. |
Bug | SPIREXLS-5294 | Fixed the issue that the effect of printing Excel was incorrect after setting PrintErrorsType.NA. |
Bug | SPIREXLS-5318 | Fix the issue that the content was lost after converting Excel to PDF. |
Request free customized demo just for you. |
Tab 1
Upload

Convert to
Tab 2
Tab 3
Tab 4
Mathematic Functions:
Calculate symbol : | Calculate Data: |
Logic Function:
Calculate symbol : | Calculate Data: |
Simple Expression:
Calculate symbol : | Calculate Data: |
MID Functions:
Text : | Start Number: |
Number Charts: |
Option:
Excel Version: |
Tab 5
Data
Option
Excel Version: |
If you don't find the function you want, please fill in a form to request a free demo from us. Make sure the demo you want meets the following requirements:
- It is a small project that implements a particular scenario.
- It relates to our libraries stored on E-iceblue online store.
- It costs less than 2 hours for us to complete it.
- It is not a bug report.
- It is not a feature request.