Spire.XLS for .NET

  • Overview
  • Features
  • Examples
  • Guideline
  • Support
  • What's New
  • Live Demo

Standalone .NET Excel
Development Master

Over 1,000,000 Developers Are Already Using Our Libraries
To Create Their Amazing Applications.

Spire.XLS for .NET is a professional Excel .NET API that can be used to create, read, write, convert and print Excel files in any type of .NET (C#, VB.NET, ASP.NET, .NET Core, .NET 5.0, .NET 6.0, MonoAndroid and Xamarin.iOS) application. Spire.XLS for .NET offers object model Excel API for speeding up Excel programming in .NET platform - create new Excel documents from template, edit existing Excel documents and convert Excel files.


This Professional .NET Excel API is a standalone Excel .NET managed assembly and does not depend on Microsoft Office Excel. Spire.XLS for .NET 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. It features fast and reliably compared with developing your own spreadsheet manipulation solution or using Microsoft Automation.


Spire.XLS for .NET enjoys good reputation in both enterprise and individual customers. These customer types include Banks, Data processing houses, Educational institutions, Government organizations, Insurance firms, Legal institutions, Postal/cargo services and 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.

.NET

Standalone .NET API

100% independent .NET Excel class library
which doesn't require Microsoft Office to be 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

CONVERSION

Conversion File Documents with High Quality

  • TEXT

  • XPS

  • SVG

  • PDF

  • XML

  • Image

XLsx,XLSM,XLSB,ODS

  • CSV

  • HTML

  • UOS

  • PNG

  • BMP

  • JPEG

  • EMF

  • TIFF

  1. Chart

Excel

MAIN FUNCTION

100% Standalone .NET API,
No Microsoft Office Automation

Spire.XLS for .NET is a 100% standalone Excel .NET API that allows developers to create, manage and manipulate Excel spreadsheets without requiring Microsoft Excel or Microsoft Office to be installed on the system. In addition, Spire.XLS for .NET is a better alternative to Office Automation in terms of security, stability, scalability, speed, price and features.

Powerful & High Quality
Excel File Conversion

Spire.XLS for .NET supports converting files from excel to PDF, HTML, CSV, images, EMF, XML, SVG, CSV, Text (TXT), XLSX, XLSM, UOS, OFD, ODS, PostScript and XPS. And on the other hand, most of popular files can be transferred to Excel back, such as convert CSV to PDF/DataTable/Excel, convert XML to excel/PDF, convert HTML/XML/XLSX to Excel in high quality.

Create Excel Report from Comprehensive Workbook Designer

Generate Excel workbook from scratch, or load a workbook from either folder or file stream. Developers can also save it to file, file stream or web response. Spire.XLS for .NET offers a wide range of security features including excel encryption/decryption, digital signature, tracking changes, cell hide/unhide, worksheet lock/unlock.

Freely Operate worksheet

Spire.XLS for .NET enables developers to create, add, rename, edit, delete/move and hide/show worksheet in either C#, VB.NET or ASP.NET. Developers can also copy, transpose, and consolidate across worksheets with full contents. This professional Excel .NET class library also embeds many flexible options for displaying worksheets, such as setting page setup options, page breaks, zoom-setting, freeze panes, headers/footers, add/extract/remove textbox, print excel files, print paper size and print area etc.

Easily Manipulate cells & Excel Calculation Engine at run time

Developers can easily manipulate Excel cells and Evaluate formula value in C#, VB.NET or ASP.NET at runtime. Super-fast, scalable excel calculation engine is compatible with the 97-2003/2007/2010/2013/2016/2019 Excel. Cell Styles are supported by this Excel .NET API, such as merging/unmerging cells, copying rows/columns/cells, wrapping/unwrapping text, setting text alignment/rotation, adding interior, adding excel borders, locking/unlocking cells and etc. Font formats, like setting font type, size, color, bold, italic, strikeout and underlining etc. is also fully supported. Conditional formatting, text search and replace, filter and data validation can be applied to cells as easily as you expect.

Chart, Data and other Elements

Spire.XLS for .NET provides a wide range of Chart: Pie Chart, Bar Chart, Column Chart, Line Chart, Radar Chart, Doughnut Chart, Waterfall Chart, Bubble Chart, Combination Chart, Sparkline and Pivot Chart etc. This Excel .NET API also supports data transporting between database and Excel in C# VB.NET or ASP.NET, import excel to database and export database to excel, add/update/remove slicers, converting between text and numbers. Hyperlinks and templates are also supported by Spire.XLS for .NET.

Pro Edition $999

Spire.XLS Pro Edition supports converting files from Excel to PDF, HTML, Excel to CSV, Excel to Text, Excel to Image and Excel to XML(the Excel can be either .XLS or .XLSX) and it is included in Spire.XLS Pack.


Standard Edition $799

Spire.XLS for .NET Standard Edition only can be used for .NET and doesn't support print and conversion function.

Standard Edition doesn't work on .NET Core.

Free Edition $0

Free version is limited to 5 sheets per workbook and 200 rows per sheet. It doesn't support the print function. When converting Excel files to other formats, such as you can only get the first 3 pages of PDF/XPS, and you can only convert first 3 sheets to Images.

GET STARTED

Free Trials for All Progress Solutions

Platforms

Spire.XLS for .NET enables developers/programmers to build ASP.NET, Web Services, WinForms or any other type of application for any .NET Framework version from 2.0 to 4.5, .NET 5.0, .NET 6.0, .NET core, .NET Standard, MonoAndroid and Xamarin.iOS. Full support for 32-bit and 64-bit system.

File Format Supports

Spire.XLS for .NET supports lots of file formats.
  • Spire.XLS for .NET 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.
  • Save as HTML is available.
  • 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

Spire.XLS for .NET has powerful conversion ability and it enables converting Excel files to most common and popular formats.

Contents Features

Spire.XLS for .NET offers a wide range of features and the main features are listed as below:

Formatting Features

Spire.XLS for .NET provides detailed programmatic access to formatting properties of all spreadsheet elements.
  • 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

Spire.XLS for .NET enables developers/programmers to set PageSetup options.
  • 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

Feature Details

Support Excel97~2003 Excel2007 Excel2010 Excel2013 Excel2016
Operation Create New Workbook Edit Existing Workbook
Save to file Save to stream Save as web response
Workbook Properties Setup Worksheet Print Setup
Worksheet Copy Cells Data Copy Cells Styles Copy Cells Merge
Lock Worksheet Unlock Worksheet
Data Table Import Data Table Export
Freezepane Group
Filter Data Validation
Marker Designer Template Auto Populate Style Copy Variables
Format Cells Number Format Text Alignment Font
Cell Border Cell Fill Cell Protection Interior
Content Formula (all 531 entries supported) Chart (all 74 types supported)
Image Pivot Table RichText
Hyperlink Comments VBA
Convert XML Image CSV Text
Not supported in Standard Edition
Request free customized demo just for you.

High Quality Conversion

Convert Excel to PDFTutorials / Live Demo / Orginial Excel and PDF file

Convert Excel to PDF

Convert Excel to HTMLTutorials / Live Demo / Orginial Excel and HTML file

Convert Excel to HTML

Convert Excel to ImageTutorials / Orginial Excel and Image file

Convert Excel to Image

Convert Excel to XPSTutorials / Orginial Excel and XPS file

Convert Excel to Image

Excel Chart

Excel ChartTutorials / Live Demo / C# Code

Excel Chart

Marker Designer

Marker DesignerTutorials / Live Demo / C# Code

Marker Designer

Data Import/Export

Import Excel from DataTableTutorials / Live Demo / C# Code

Import Excel from DataTable

Export Excel to DataTableTutorials / Live Demo / C# Code

Export Excel to DataTable

Runtime Excel Calculation

Runtime Excel CalculationTutorials / Live Demo / C# Code

Runtime Excel Calculation

Create Excel Pivot Table

Create Excel Pivot TableTutorials / Live Demo / C# Code

Runtime Excel Calculation

Beginners Guide is the first step towards learning the basic information of Spire.XLS for .NET

Program Guide lists the detailed features of our Spire.XLS for .NET and you can search for the information you want.

The Videos give an operation guide by video. You can check the produce step by step.

Main Functions contain the main features of our Spire.XLS for .NET and you can have brief information of it.

Frequently asked question for Spire.XLS of technical and function issues.

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.

To help you get started quickly, we offer free customized demos to our customers. Please contact [email protected] for the free demo. Make sure the demo you want meets the below requirements.
  • It relates to our components stored on E-iceblue online store.
  • It costs less than 2 hours for us to complete it. If it costs more than 2 hours, please contact our [email protected]

If you have tried out Spire.XLS and found it useful, please consider sharing your experience with others. By sharing your testimonial with us, you will not only help others to make the right decision but will also to earn rewards from us. Please send your testimonials to [email protected].

This is the list of changelogs of Spire.XLS New release and hotfix. You can get the detail information of each version's new features and bug solutions.

Download Spire.XLS to start a free trial:

Hotfix Version: 15.3

'
Category ID Description
New feature - Added support for creating slicer using table data.
Workbook wb = new Workbook();
Worksheet worksheet = wb.Worksheets[0];
worksheet.Range["A1"].Value = "fruit";
worksheet.Range["A2"].Value = "grape";
worksheet.Range["A3"].Value = "blueberry";
worksheet.Range["A4"].Value = "kiwi";
worksheet.Range["A5"].Value = "cherry";
worksheet.Range["A6"].Value = "grape";
worksheet.Range["A7"].Value = "blueberry";
worksheet.Range["A8"].Value = "kiwi";
worksheet.Range["A9"].Value = "cherry";

worksheet.Range["B1"].Value = "year";
worksheet.Range["B2"].Value2 = 2020;
worksheet.Range["B3"].Value2 = 2020;
worksheet.Range["B4"].Value2 = 2020;
worksheet.Range["B5"].Value2 = 2020;
worksheet.Range["B6"].Value2 = 2021;
worksheet.Range["B7"].Value2 = 2021;
worksheet.Range["B8"].Value2 = 2021;
worksheet.Range["B9"].Value2 = 2021;

worksheet.Range["C1"].Value = "amount";
worksheet.Range["C2"].Value2 = 50;
worksheet.Range["C3"].Value2 = 60;
worksheet.Range["C4"].Value2 = 70;
worksheet.Range["C5"].Value2 = 80;
worksheet.Range["C6"].Value2 = 90;
worksheet.Range["C7"].Value2 = 100;
worksheet.Range["C8"].Value2 = 110;
worksheet.Range["C9"].Value2 = 120;

// Get slicer collection
XlsSlicerCollection slicers = worksheet.Slicers;

//Create a super table with the data from the specific cell range.
IListObject table = worksheet.ListObjects.Create("Super Table", worksheet.Range["A1:C9"]);

int count = 3;
int index = 0;
foreach (SlicerStyleType type in Enum.GetValues(typeof(SlicerStyleType)))
{
	count += 5;
	//Add a Slicer through 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[index];
	xlsSlicer.Name = "slicers_" + count;
	xlsSlicer.StyleType = type;
}

//Save to file
wb.SaveToFile("output.xlsx", ExcelVersion.Version2013);
New feature - Added support for creating slicer using pivot table data.
Workbook wb = new Workbook();
Worksheet worksheet = wb.Worksheets[0];
worksheet.Range["A1"].Value = "fruit";
worksheet.Range["A2"].Value = "grape";
worksheet.Range["A3"].Value = "blueberry";
worksheet.Range["A4"].Value = "kiwi";
worksheet.Range["A5"].Value = "cherry";
worksheet.Range["A6"].Value = "grape";
worksheet.Range["A7"].Value = "blueberry";
worksheet.Range["A8"].Value = "kiwi";
worksheet.Range["A9"].Value = "cherry";

worksheet.Range["B1"].Value = "year";
worksheet.Range["B2"].Value2 = 2020;
worksheet.Range["B3"].Value2 = 2020;
worksheet.Range["B4"].Value2 = 2020;
worksheet.Range["B5"].Value2 = 2020;
worksheet.Range["B6"].Value2 = 2021;
worksheet.Range["B7"].Value2 = 2021;
worksheet.Range["B8"].Value2 = 2021;
worksheet.Range["B9"].Value2 = 2021;

worksheet.Range["C1"].Value = "amount";
worksheet.Range["C2"].Value2 = 50;
worksheet.Range["C3"].Value2 = 60;
worksheet.Range["C4"].Value2 = 70;
worksheet.Range["C5"].Value2 = 80;
worksheet.Range["C6"].Value2 = 90;
worksheet.Range["C7"].Value2 = 100;
worksheet.Range["C8"].Value2 = 110;
worksheet.Range["C9"].Value2 = 120;

// Get pivot table collection
Spire.Xls.Collections.PivotTablesCollection pivotTables = worksheet.PivotTables;

//Add a PivotTable to the worksheet
CellRange dataRange = worksheet.Range["A1:C9"];
PivotCache cache = wb.PivotCaches.Add(dataRange);

//Cell to put the pivot table
Spire.Xls.PivotTable pt = worksheet.PivotTables.Add("TestPivotTable", worksheet.Range["A12"], cache);

//Drag the fields to the row area.
PivotField pf = pt.PivotFields["fruit"] as PivotField;
pf.Axis = AxisTypes.Row;
PivotField pf2 = pt.PivotFields["year"] as PivotField;
pf2.Axis = AxisTypes.Column;

//Drag the field to the data area.
pt.DataFields.Add(pt.PivotFields["amount"], "SUM of Count", SubtotalTypes.Sum);

//Set PivotTable style
pt.BuiltInStyle = PivotBuiltInStyles.PivotStyleMedium10;

pt.CalculateData();

//Get slicer collection
XlsSlicerCollection slicers = worksheet.Slicers;

//Add a Slicer through pivot table data: here invoke Add(IPivotTable, string, int) api.
int index = slicers.Add(pt, "E12", 0);

XlsSlicer xlsSlicer = slicers[index];
xlsSlicer.Name = "test_xlsSlicer";
xlsSlicer.Width = 100;
xlsSlicer.Height = 120;
xlsSlicer.StyleType = SlicerStyleType.SlicerStyleLight2;
xlsSlicer.PositionLocked = true;

//Get SlicerCache object of current slicer
XlsSlicerCache slicerCache = xlsSlicer.SlicerCache;
slicerCache.CrossFilterType = SlicerCacheCrossFilterType.ShowItemsWithNoData;

//Style setting
XlsSlicerCacheItemCollection slicerCacheItems = xlsSlicer.SlicerCache.SlicerCacheItems;
XlsSlicerCacheItem xlsSlicerCacheItem = slicerCacheItems[0];
xlsSlicerCacheItem.Selected = false;

XlsSlicerCollection slicers_2 = worksheet.Slicers;

IPivotField r1 = pt.PivotFields["year"];
int index_2 = slicers_2.Add(pt, "I12", r1);

XlsSlicer xlsSlicer_2 = slicers[index_2];
xlsSlicer_2.RowHeight = 40;
xlsSlicer_2.StyleType = SlicerStyleType.SlicerStyleLight3;
xlsSlicer_2.PositionLocked = false;

//Get SlicerCache object of current slicer
XlsSlicerCache slicerCache_2 = xlsSlicer_2.SlicerCache;
slicerCache_2.CrossFilterType = SlicerCacheCrossFilterType.ShowItemsWithDataAtTop;

//Style setting
XlsSlicerCacheItemCollection slicerCacheItems_2 = xlsSlicer_2.SlicerCache.SlicerCacheItems;
XlsSlicerCacheItem xlsSlicerCacheItem_2 = slicerCacheItems_2[1];
xlsSlicerCacheItem_2.Selected = false;
pt.CalculateData();

//Save to file
wb.SaveToFile("out.xlsx", ExcelVersion.Version2013);
New feature - Added support for removing slicer.
Workbook wb = new Workbook();
wb.LoadFromFile(inputFile);
//Get slicer collection of first worksheet 
Worksheet worksheet = wb.Worksheets[0];
XlsSlicerCollection slicers = worksheet.Slicers;
//Remove the first slicer by index
slicers.RemoveAt(0);
Worksheet worksheet_2 = wb.Worksheets[1];
//Remove all slicers
worksheet_2.Slicers.Clear();
wb.SaveToFile(outputFile, ExcelVersion.Version2013);
New feature - Added support for modifying slicer.
Workbook wb = new Workbook();
wb.LoadFromFile("in.xlsx");

//Get the first worksheet of workbook
Worksheet worksheet = wb.Worksheets[0];

//Get slicer collection
XlsSlicerCollection slicers = worksheet.Slicers;

//Style setting
XlsSlicer xlsSlicer = slicers[0];

xlsSlicer.StyleType = SlicerStyleType.SlicerStyleDark4;
xlsSlicer.Caption = "Slicer";
xlsSlicer.PositionLocked = true;

XlsSlicerCacheItemCollection slicerCacheItems = xlsSlicer.SlicerCache.SlicerCacheItems;
XlsSlicerCacheItem xlsSlicerCacheItem = slicerCacheItems[0];
xlsSlicerCacheItem.Selected = false;
string displayValue = xlsSlicerCacheItem.DisplayValue;

//Get SlicerCache object of current slicer
XlsSlicerCache slicerCache = xlsSlicer.SlicerCache;
slicerCache.CrossFilterType = SlicerCacheCrossFilterType.ShowItemsWithNoData;

//Save to file
wb.SaveToFile("out.xlsx", ExcelVersion.Version2013);
New feature - Added support for retrieving slicer information.
Workbook wb = new Workbook();
wb.LoadFromFile("in.xlsx");
//Get slicer collection of first worksheet 
Worksheet worksheet = wb.Worksheets[0];

XlsSlicerCollection slicers = worksheet.Slicers;
StringBuilder builder = new StringBuilder();
builder.AppendLine("slicers.Count:" + slicers.Count);

XlsSlicer xlsSlicer = slicers[1];

builder.AppendLine("xlsSlicer.Name:" + xlsSlicer.Name);
builder.AppendLine("xlsSlicer.Caption:" + xlsSlicer.Caption);
builder.AppendLine("xlsSlicer.NumberOfColumns:" + xlsSlicer.NumberOfColumns);
builder.AppendLine("xlsSlicer.ColumnWidth:" + xlsSlicer.ColumnWidth);
builder.AppendLine("xlsSlicer.RowHeight:" + xlsSlicer.RowHeight);
builder.AppendLine("xlsSlicer.ShowCaption:" + xlsSlicer.ShowCaption);
builder.AppendLine("xlsSlicer.PositionLocked:" + xlsSlicer.PositionLocked);
builder.AppendLine("xlsSlicer.Width:" + xlsSlicer.Width);
builder.AppendLine("xlsSlicer.Height:" + xlsSlicer.Height);

//Get SlicerCache object of current slicer
XlsSlicerCache slicerCache = xlsSlicer.SlicerCache;

builder.AppendLine("slicerCache.SourceName:" + slicerCache.SourceName);
builder.AppendLine("slicerCache.IsTabular:" + slicerCache.IsTabular);
builder.AppendLine("slicerCache.Name:" + slicerCache.Name);

XlsSlicerCacheItemCollection slicerCacheItems = slicerCache.SlicerCacheItems;
XlsSlicerCacheItem xlsSlicerCacheItem = slicerCacheItems[1];


builder.AppendLine("xlsSlicerCacheItem.Selected:" + xlsSlicerCacheItem.Selected);

File.WriteAllText("out.txt", builder.ToString());
wb.Dispose();
New feature SPIREXLS-5302 Added support for modifying the names of slicer.
Workbook wb = new Workbook();
wb.LoadFromFile(inputFile);            
Worksheet worksheet = wb.Worksheets[0];            
XlsSlicerCollection slicers = worksheet.Slicers;           
XlsSlicer xlsSlicer = slicers[0];
xlsSlicer.Caption = "Name1";            
wb.SaveToFile(outputFile, ExcelVersion.Version2013);
Bug SPIREXLS-1922
SPIREXLS-5641
Fixed the issue of missing slicers when converting Excel to PDF.

Hotfix Version: 15.2.3

Category ID Description
New feature SPIREXLS-568 Supports preserving the original format in the ExportDataTable() function.
ExportTableOptions op = new ExportTableOptions();
op.ExportColumnNames = true;
op.KeepDataType = true;
var r = sheet.Range["A1:M7"]; 
New feature SPIREXLS-5539 Supports the MUNIT function.
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["C2"].Formula = "=MUNIT(5)";
workbook.Worksheets[0].Range["C8"].Formula = "=MUNIT(0)";
workbook.Worksheets[0].Range["A1"].Formula = "=FLOOR.PRECISE(3.2)";
workbook.Worksheets[0].Range["D1"].Formula = "CSC(-2)";
workbook.Worksheets[0].Range["A3"].Formula = "=IMCSCH(\"4 + 3i\")";
workbook.CalculateAllValue();
New feature SPIREXLS-5540 Supports the FLOOR function.
New feature SPIREXLS-5541 Supports the PRECISE function.
New feature SPIREXLS-5681 Supports the CSC function.
New feature SPIREXLS-5682 Supports the IMCOSH function.
New feature SPIREXLS-5683 Supports the IMSINH function.
New feature SPIREXLS-5684 Supports the IMSECH function.
Bug SPIREXLS-5674 Fixes the issue that document opening errors occurred when setting the language region to "Hungarian".
Bug SPIREXLS-5675 Fixes the issue that Japanese characters were converted to English characters after updating the pivot table.
Bug SPIREXLS-5680 Fixes the issue that the date format was inconsistent after converting a sheet to an image.
Bug SPIREXLS-5686 Fixes the issue that black color was resulted when setting the sheet tab color to Color.Empty.
Bug SPIREXLS-5692 Fixes the issue that the formula generated in German mode was incorrect.
Bug SPIREXLS-5708 Fixes the issue that saving a shape to an image caused a NullReferenceException.

Hotfix Version: 15.1.3

Category ID Description
New feature SPIREXLS-5542 Supports the CSCH function
New feature SPIREXLS-5548 Supports the RANDARRAY function.
New feature SPIREXLS-5621 Supports the COTH function.
New feature SPIREXLS-5622 Supports the SEQUENCE function.
New feature SPIREXLS-5627 Supports the EXPAND function.
New feature SPIREXLS-5638 Supports the CHOOSECOLS function.
New feature SPIREXLS-5639 Supports the CHOOSEROWS function.
New feature SPIREXLS-5642 Supports the DROP function.
New feature SPIREXLS-5656 Support setting HyLink for XlsPrstGeomShape.
PrstGeomShapeCollection prstGeomShapeType = worksheet.PrstGeomShapes;
for (int i = 0; i < prstGeomShapeType.Count; i++)
{
    XlsPrstGeomShape shape = (XlsPrstGeomShape)prstGeomShapeType[i];
    shape.HyLink.Address = "https://www.baidu.com/";
}
Bug SPIREXLS-5570 Fixes the issue that the charts were lost when converting XLSM to PDF.
Bug SPIREXLS-5608 Fixes the issue that the content was lost when converting Excel to PDF.
Bug SPIREXLS-5611 Fixes the issue that setting ShowLeaderLines did not take effect.
Bug SPIREXLS-5612 Fixes the issue that the data bar colors were incorrect when converting Excel to PDF.
Bug SPIREXLS-5625
SPIREXLS-5647
Fixes the issue that the values were incorrect after calling the CalculateAllValue() method to calculate formula values.
Bug SPIREXLS-5635 Fixes the issue that setting the worksheet tab color to Color.Empty resulted in black. 
Bug SPIREXLS-5640 Fixes the issue that the images were extracted incorrectly.
Bug SPIREXLS-5657 Fixes the issue that it failed to delete pivot fields in pivot tables.
Bug SPIREXLS-5659 Fixes the issue that the text orientation in shapes was reversed when converting Excel to PDF.

Hotfix Version: 14.12.2

Category ID Description
New feature SPIREXLS-5561 Supports the SEC function.
New feature SPIREXLS-5562 Supports the WRAPCOLS function.
New feature SPIREXLS-5563 Supports the WRAPROWS function.
New feature SPIREXLS-5574 Supports the VSTACK function.
New feature SPIREXLS-5577 Supports the PERCENTOF function.
New feature SPIREXLS-5578 Supports the REPTARRAY function.
New feature SPIREXLS-5592 Support the SECH function.
New feature SPIREXLS-5607 Supports the IMTAN function.
New feature SPIREXLS-5614 Supports the IMCSC function.
New feature SPIREXLS-5615 Supports the IMCOT function.
New feature SPIREXLS-5616 Supports the IMSEC function.
New feature SPIREXLS-5623 Supports the SUBSTITUTES function.
Bug SPIREXLS-5576 Fixes the issue that the content was being shrunk when printing Excel documents using a dot matrix printer.
Bug SPIREXLS-5584 Fixes the issue that the formatting was incorrect when converting Excel documents to PDF.
Bug SPIREXLS-5610 Fixes the issue that the text position in legends was incorrect when converting Excel documents to PDF.

Hotfix Version: 14.11.3

Category ID Description
New feature SPIREXLS-5469
SPIREXLS-5470
SPIREXLS-5546
SPIREXLS-5564
SPIREXLS-5565
Supports the new formulas including ACOT, ACOTH, COT, TOROW, TOCOL.
New feature SPIREXLS-5534 Supports passing values to group pivot tables.
Workbook wb = new Workbook();
 wb.LoadFromFile(inputFile);
 Worksheet pivotSheet = wb.Worksheets[0]; 
 XlsPivotTable pivot = (XlsPivotTable)pivotSheet.PivotTables[0]; PivotField dateBaseField = pivot.PivotFields["number"] as PivotField;
 dateBaseField.CreateGroup(3000, 3800, 1);
 pivot.CalculateData();
 wb.SaveToFile(outputFile);
 wb.Dispose();
Bug SPIREXLS-3123 Fixes the issue that the results were incorrect after compressing images.
Bug SPIREXLS-5056 Fixes the issue that some content was hidden when converting Excel to images.
Bug SPIREXLS-5081 Fixes the issue that the program threw an 'ArgumentOutOfRangeException' error while loading an Excel document.
Bug SPIREXLS-5120 Fixes the issue that the image content was incorrect after loading and saving an Excel document.
Bug SPIREXLS-5177 Fixes the issue that the chart height was incorrect when converting Excel to PDF. 
Bug SPIREXLS-5364 Fixes the issue that the effect was incorrect when using "Worksheet.AutoFitColumn()" method.
Bug SPIREXLS-5513 Fixes the issue that the background color changed when saving xls to xlsx.
Bug SPIREXLS-5537 Fixes the issue that the content was incorrect when converting Excel to PDF.
Bug SPIREXLS-5538 Fixes the issue that the results were incorrect when replacing images in Excel.
Bug SPIREXLS-5543 Fixes the issue that the content was incorrect when converting Chart to Image.
Bug SPIREXLS-5544 Fixes the issue that the content was lost when printing Excel document.
Bug SPIREXLS-5545 Fixes the issue that the results were incorrect when using VLOOKUP() formula.
Bug SPIREXLS-5554 Fixes the issue that the content was incorrect when converting Excel to PDF.

Hotfix Version: 14.10.2

Category ID Description
New feature SPIREXLS-5350 MarkerDesigner now supports applying filter value parameters.
New feature SPIREXLS-5396 ARRAYTOTEXT formula has been supported.
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Text = "True";
workbook.Worksheets[0].Range["A2"].Text = "1234.01234";
workbook.Worksheets[0].Range["A3"].Text = "Hello";
workbook.Worksheets[0].Range["B1"].Text = "#VALUE!";
workbook.Worksheets[0].Range["B2"].Text = "Seattle";
workbook.Worksheets[0].Range["B3"].Text = "$1,123.00";          
workbook.Worksheets[0].Range["D1"].FormulaArray = "=ARRAYTOTEXT(A1:B4,0)"; 
workbook.Worksheets[0].Range["D3"].FormulaArray = "=ARRAYTOTEXT(A1:B4,1)";    
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);
New feature SPIREXLS-5471 ARABIC formula has been supported.
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = "mcmxii";             
workbook.Worksheets[0].Range["C1"].Formula = "=ARABIC(A1)";
workbook.Worksheets[0].Range["C2"].Formula = "=ARABIC(\"LVII\")"; 
workbook.Worksheets[0].Range["C3"].Formula = "=ARABIC(\"mcmxii\")"; 
workbook.Worksheets[0].Range["C4"].Formula = "=ARABIC(\"\")"; 
workbook.Worksheets[0].Range["C5"].Formula = "=ARABIC(\"-LVII\")";
workbook.Worksheets[0].Range["C6"].Formula = "=ARABIC(\"57\")"; 
workbook.Worksheets[0].Range["C7"].Formula = "=ARABIC(\"2024/10/15\")"; 
workbook.Worksheets[0].Range["C8"].Formula = "=ARABIC(\"Text\")";
New feature SPIREXLS-5478 BASE formula has been supported.
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = 7;           
workbook.Worksheets[0].Range["C1"].Formula = "=BASE(A1,2)";
workbook.Worksheets[0].Range["C2"].Formula = "=BASE(7,2)"; 
workbook.Worksheets[0].Range["C3"].Formula = "=BASE(100,16))";
workbook.Worksheets[0].Range["C4"].Formula = "=BASE(15,2,10)"; 
workbook.Worksheets[0].Range["C5"].Formula = "=BASE(Text,16))"; 
workbook.Worksheets[0].Range["C6"].Formula = "=BASE(-7,2)";
New feature SPIREXLS-5479 COMBINA formula has been supported.
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = 4; 
workbook.Worksheets[0].Range["C1"].Formula = "=COMBINA(A1,3)";
workbook.Worksheets[0].Range["C2"].Formula = "=COMBINA(4,3)"; 
workbook.Worksheets[0].Range["C3"].Formula = "=COMBINA(10,3)"; 
workbook.Worksheets[0].Range["C4"].Formula = "=COMBINA(3,10)";
workbook.Worksheets[0].Range["C5"].Formula = "=COMBINA(Text,16))";
New feature SPIREXLS-5480 XOR formula has been supported.
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = 3;
workbook.Worksheets[0].Range["A2"].Value2 = 0;
workbook.Worksheets[0].Range["C1"].Formula = "=XOR(A1>A2)";
workbook.Worksheets[0].Range["C2"].Formula = "=XOR(2>9)"; 
workbook.Worksheets[0].Range["C3"].Formula = "=XOR(3>0,2<9)"; 
workbook.Worksheets[0].Range["C4"].Formula = "=XOR(3>12,2<9)"; 
workbook.Worksheets[0].Range["C5"].Formula = "=XOR(3>12,2<9,4>6)"; 
workbook.Worksheets[0].Range["A6"].Value2 = 3>0;
workbook.Worksheets[0].Range["C6"].Formula = "=XOR(A6)";
New feature SPIREXLS-5482 Supports embedding images into cells.
worksheet.Range["B1"].InsertOrUpdateCellImage("D:\\vs1.png",true); 
New feature SPIREXLS-5521 Supports getting a cell's NamedRange.
Workbook workbook = new Workbook();
workbook.LoadFromFile(inputFile);
var result = workbook.Worksheets[0].Range["A1"].GetNamedRange();
System.Console.WriteLine(result);
var result1 = workbook.Worksheets[0].Range["A2"].GetNamedRange();
System.Console.WriteLine(result1);
File.WriteAllText(outputFile_T, result.ToString()+ "\r
");
File.AppendAllText(outputFile_T, result1.ToString()+ "\r
");
var result2 = workbook.Worksheets[0].Range["A3"].GetNamedRange();
if (result2 == null)
{
    System.Console.WriteLine("null");
    File.AppendAllText(outputFile_T, "null");
}
Bug SPIREXLS-2333 Fixed an issue where the number of pages retrieved was incorrect.
Bug SPIREXLS-5287 Fixed an issue with decimal points not being correct when exporting data under the .NET 6 framework.
Bug SPIREXLS-5347 Fixed an issue where embedded images in cells were lost after converting Excel to PDF.
Bug SPIREXLS-5465 Fixed an exception "Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')" when converting Excel to PDF.
Bug SPIREXLS-5481 Fixed an issue where the calculation result of a formula was incorrect.
Bug SPIREXLS-5486 Fixed an exception when converting Excel to PDF.
Bug SPIREXLS-5489 Fixed an issue where an additional "@" character was inserted when adding formulas to cells, and the formula value was incorrect.
Bug SPIREXLS-5491 Fixed an issue where deleting Sparklines failed.
Bug SPIREXLS-5532 Fixed an issue where adding filters to pivot tables failed.

Hotfix Version: 14.9.5

Category ID Description
New feature SPIREXLS-5255 Supports adding filters to row fields/column fields of pivot tables.
XlsPivotTable pt1 = workbook.Worksheets["PivotTable_1"].PivotTables[0] as XlsPivotTable;
pt1.RowFields[0].AddValueFilter(PivotValueFilterType.Between, pt1.DataFields[0], 100000, 1000000);
pt1.ColumnFields[0].AddValueFilter(PivotValueFilterType.Between, pt1.DataFields[0], 100000, 1000000);
pt1.CalculateData();
New feature SPIREXLS-5393 Supports the TEXTBEFORE formula.
workbook.Worksheets[0].Range["A1"].Formula = "=TEXTBEFORE(\"Red riding hood's, red hood\", \"hood\")";
New feature SPIREXLS-5394 Supports the TEXTSPLIT formula.
Supports the issue that the TEXTSPLIT formula is now available. 
workbook.Worksheets[0].Range["B2:D2"].FormulaArray = "=TEXTSPLIT(A2, \" \")";
New feature SPIREXLS-5397 Supports the TEXTAFTER formula.
workbook.Worksheets[0].Range["A3"].Formula = "=TEXTAFTER(\"Red riding hood’s, red hood\", \"\")";
Bug SPIREXLS-5355 Fixes the issue that the content is incorrect when converting Excel documents to images.
Bug SPIREXLS-5467 Fixes the issue that an exception "System.InvalidCastException" is thrown when copying worksheets containing charts.
Bug SPIREXLS-5468 Fixes the issue that there is a discrepancy in data after the decimal point when converting Excel documents to PDF.

Hotfix Version: 14.9.1

Category ID Description
New feature SPIREXLS-5307 Adds the 'OleObjectType.Msg' type to identify OLE objects in Msg format.
Workbook wb = new Workbook();
wb.LoadFromFile(inputFile);
Worksheet sheet =wb.Worksheets[0];
OleObjectType type;
if (sheet.HasOleObjects)
{
   for (int i = 0; i < sheet.OleObjects.Count; i++)
   {
      var Object = sheet.OleObjects[i];
      type = sheet.OleObjects[i].ObjectType;
      switch (type)
      {
         case OleObjectType.Msg:
            File.WriteAllBytes(outputFile_1, Object.OleData);
            break;     
         ......                   
      }
    }
}
New feature SPIREXLS-5359 Adds the 'workbook.ProhibitDtd = true' property to disable DTD processing.
Workbook workbook = new Workbook();
workbook.ProhibitDtd = true; 
workbook.LoadFromFile(inputFile);
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);
workbook.Dispose();
New feature SPIREXLS-5395 Implements the support for the BAHTTEXT formula.
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A3"].Value2 = 1234;
workbook.Worksheets[0].Range["C3"].Formula = "=BAHTTEXT(A3)";
workbook.Worksheets[0].Range["A9"].Value = "1234";
workbook.Worksheets[0].Range["C9"].Formula = "=BAHTTEXT(A9)";            
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);
workbook.Dispose();
Bug SPIREXLS-5108 Fixed the issue that the table borders were inconsistent in color after converting an Excel document to a picture.
Bug SPIREXLS-5280 Fix the issue that the content was incorrect after converting an Excel document to a CSV document.
Bug SPIREXLS-5315 Fix the issue that the order of setting different font styles for the contents of a cell affected the inconsistency of the results.
Bug SPIREXLS-5321 Fix the issue that icons were lost after converting an Excel document to an HTML document.
Bug SPIREXLS-5332 Fix the issue that the data in the pivot table was lost when converting an Excel document to a picture.
Bug SPIREXLS-5346 Fix the issue that the result of data summing using MarkerDesigner function was incorrect.
Bug SPIREXLS-5360 Fixed the issue that the program threw System.OutOfMemoryException when converting charts to pictures.
Bug SPIREXLS-5361 Fixed the issue that the formatting was changed after saving as an XLSX document.
Bug SPIREXLS-5363 Fixed the issue that the spacing between words became larger after converting an Excel document to a PDF document.
Bug SPIREXLS-5400 Fix the issue that the text line breaks were incorrect after converting an Excel document to a PDF document.

Hotfix Version: 14.8.2

Category ID Description
New feature SPIREXLS-5254 Supports enabling revision mode.
Workbook.TrackedChanges=true;//default value is false
New feature SPIREXLS-5348 Supports setting global custom font folders.
Workbook.SetGlobalCustomFontsFolders(string[] fontPath);
Bug SPIREXLS-5196 Fixes the issue that the checkbox was not converted to image format when converting Excel to PDF.
Bug SPIREXLS-5305 Fixes the issue that multiple calls to the ApplyStyleToRange method in pivot tables result in incorrect results.
Bug SPIREXLS-5308 Fixes the issue that setting the color transparency of rich text did not take effect.
Bug SPIREXLS-5317 Fixes the issue that the Filter formula is calculated incorrectly.
Bug SPIREXLS-5330 Fixes the issue that pivot table column names are incorrect when converting Excel to images.
Bug SPIREXLS-5345 Fixes the issue that the text location is incorrect when converting Excel to PDF.
Bug SPIREXLS-5349 Fixes the issue that ChartSheet retrieval is incorrect.
Bug SPIREXLS-5352 Fixes the issue that cell content is incorrect when converting Excel to HTML or images.

Hotfix Version: 14.7.2

Request free customized demo just for you.

Tab 1

Upload

Maximum file size: 1 MB. Files accepted: xls, xlsx, xlsb, ods.
Click here to browse files.
fileerrors

Convert to

Source file:
filename
Target file type:

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:
downloads

Tab 5

Data

fileerrors

Option

Excel Version:
downloads

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.