Winnovative Software Logo

 HTML to PDF Converter - Excel Library - ASP.NET Charts - RTF to PDF Converter
 PDF Merge and Split - PDF Security - PDF Viewers - PDF to Text - Images Extractor

Skip Navigation Links
Excel Logo

Winnovative Excel Library for .NET

The Winnovative Excel Library for .NET can be used in any type of .NET project, either ASP.NET and MVC web sites or Windows Forms and WPF applications, to enable your application to create new Excel documents from scratch or to edit existing Excel documents. The Winnovative Excel Library for .Net offers support both for the old Excel 97-2003 format (.xls) and for the new Excel 2007 and Excel 2010 (.xlsx) format.

The library is a .NET managed assembly and does not depend on Microsoft Office Excel. The library can also be used from ASP.NET applications running in more restrictive environments like servers where the trust level for the ASP.NET application was restricted to Medium Trust by the server administrator.

The integration is extremely easy and no additional installation  is necessary in order to get started. The library is delivered as a strong named assembly that can be directly referenced by your project. The downloaded archive contains C# and VB.NET samples for ASP.NET and Windows Forms and the complete API  documentation.

For a quick overview of the main capabilities of the library, a main features demo was made available online on our website.
The dynamic invoices demo shows how to dynamically create Excel invoices containing images, data tables and charts. The full C# and VB.NET source code of the online demo applications is available in the downloaded archive under the WnvExcelLib\Samples\AspNet folder.


Excel Library for .NET
Easy integration, no installation or setup is necessary
Deployed as single strong named .NET assembly
Can be used from any .NET application (ASP.NET, Windows Forms, WPF)
Does not depend on Microsoft Office Excel
Can run in Medium Trust environments (like shared hosting)
Can run on 32-bit and 64-bit Windows servers
Create new Excel documents or edit existing Excel documents
Support for Excel 97-2003 (.xls), Excel 2007 and 2010 (.xlsx) formats
Load a workbook from a stream or from a file
Save a workbook to a stream or to a file
Load data from CSV files and save data to CSV format
Load data from a .NET DataTable or save data to a DataTable object
Add chart shapes or chart worksheets to a workbook
Add formulas and array formulas to a worksheet
Add global styles to a workbook
Advanced support for Excel 2007 and 2010 gradients and textures
Add named ranges at worksheet or workbook level
Add images to a worksheet
Add hyperlinks and comments to a worksheet
Support for data validation
Support for workbook windows and structure protection
Support for worksheet data protection
Read and write password protection for .xls workbooks
Support for worksheet page setup - headers, footers, size, margins, orientation
Support for workbook properties - author, subject, comments

Code Sample

    protected void lnkBtnCreateWorkbook_Click(object sender, EventArgs e)
        // get the Excel workbook format
        ExcelWorkbookFormat workbookFormat = radioXlsFormat.Checked ? ExcelWorkbookFormat.Xls_2003 : 

        // create the workbook in the desired format with a single worksheet
        ExcelWorkbook workbook = new ExcelWorkbook(workbookFormat);

        // set the license key before saving the workbook
        workbook.LicenseKey = "RW51ZXZ0ZXVldGt1ZXZ0a3R3a3x8fHw=";

        // set workbook description properties
        workbook.DocumentProperties.Subject = "Getting started sample";
        workbook.DocumentProperties.Comments = "Getting started with Winnovative
            Excel library for .NET";


        #region Add a style used for the cells in the worksheet title area

        ExcelCellStyle titleStyle = workbook.Styles.AddStyle("WorksheetTitleStyle");
        // center the text in the title area
        titleStyle.Alignment.HorizontalAlignment = ExcelCellHorizontalAlignmentType.Center;
        titleStyle.Alignment.VerticalAlignment = ExcelCellVerticalAlignmentType.Center;
        if (workbookFormat == ExcelWorkbookFormat.Xls_2003)
            // set the solid fill for the title area range with a custom color
            titleStyle.Fill.FillType = ExcelCellFillType.SolidFill;
            titleStyle.Fill.SolidFillOptions.BackColor = Color.FromArgb(255, 255, 204);
            // set the gradient fill for the title area range with a custom color
            titleStyle.Fill.FillType = ExcelCellFillType.GradientFill;
            titleStyle.Fill.GradientFillOptions.Color1 = Color.FromArgb(255, 255, 204);
            titleStyle.Fill.GradientFillOptions.Color2 = Color.White;
        // set the title area font 
        titleStyle.Font.Size = 14;
        titleStyle.Font.Bold = true;
        titleStyle.Font.UnderlineType = ExcelCellUnderlineType.Single;


        // get the first worksheet in the workbook
        ExcelWorksheet worksheet = workbook.Worksheets[0];

        // set the default worksheet name
        worksheet.Name = "Hello World";

        #region WORKSHEET PAGE SETUP

        // set worksheet paper size and orientation, margins, header and footer
        worksheet.PageSetup.PaperSize = ExcelPagePaperSize.PaperA4;
        worksheet.PageSetup.Orientation = ExcelPageOrientation.Portrait;
        worksheet.PageSetup.LeftMargin = 1;
        worksheet.PageSetup.RightMargin = 1;
        worksheet.PageSetup.TopMargin = 1;
        worksheet.PageSetup.BottomMargin = 1;



        // merge the cells in the range to create the title area 
        // gets the merged range containing the top left cell of the range
        ExcelRange titleRange = worksheet["A2"].MergeArea;
        // set the text of title area
        worksheet["A2"].Text = "Say 'Hello World'
            in Different Languages";

        // set a row height of 18 points for each row in the range
        titleRange.RowHeightInPoints = 18;
        // set the worksheet top title style
        titleRange.Style = titleStyle;



        // Save the Excel document in the current HTTP response stream

        string outFileName = workbookFormat == ExcelWorkbookFormat.Xls_2003 ? "GettingStarted.xls" : 

        System.Web.HttpResponse httpResponse = System.Web.HttpContext.Current.Response;

        // Prepare the HTTP response stream for saving the Excel document

        // Clear any data that might have been previously buffered in the
            output stream

        // Set output stream content type for Excel 97-2003 (.xls) or Excel
            2007 (.xlsx)
        if (workbookFormat == ExcelWorkbookFormat.Xls_2003)
            httpResponse.ContentType = "Application/x-msexcel";
            httpResponse.ContentType = "Application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

        // Add the HTTP header to announce the Excel document either as an
            attachment or inline
        httpResponse.AddHeader("Content-Disposition", String.Format("attachment; filename={0}", 

        // Save the workbook to the current HTTP response output stream
        // and close the workbook after save to release all the allocated
            // close the workbook and release the allocated resources

        // End the response and finish the execution of this page