SpreadsheetGear - performance spreadsheet components
| | | |
Products
Samples
Downloads
Support
Company
SpreadsheetGear 2009
June 16th, 2009 - SpreadsheetGear 2009 adds a number of the most frequently requested features including the 93 Analysis Toolpak functions, CSV and text file support, auto fill, goal seeking, data series, bubble charts, chart axis titles, gradients, rotated text and more.

New Features
  • Support for the 93 functions which are in the Excel 2003 Analysis Toolpak as well as the undocumented DATEDIF function bringing the total number of supported functions to 331.
  • CSV and tab separated text support (read and write).
  • Drag Fill / Auto Fill API & UI including support for numbers, dates, times, month names, day names and certain text patterns.
  • Data Series API & UI including support for automatic, chronological, linear, growth, day, weekday, month, year, start value, step value, stop value and the ability to use regression for linear or exponential trends.
  • Single variable and single target goal seeking API & UI.
  • Chart axis title rendering.
  • Bubble chart rendering.
  • Rotated text support in charts and cells.
  • Enhanced fill option support including gradient API & UI.
  • Many Range Explorer, Chart Explorer and Shape Explorer enhancements.
  • Added WorkbookView.BeginEdit(), WorkbookView.CancelEdit() and WorkbookView.EndEdit() methods as well as a WorkbookView.IsEditing property.
  • Added support for hidden chart series when linked to hidden rows or columns when the PlotVisibleOnly option enabled.
  • Added support for font names and font sizes in print headers and print footers.
  • Added IArguments.GetArrayFormulaInfo(ref int row1, ref int col1, ref int row2, ref int col2) method to return information about the array formula currently being evaluated, if any.
  • Added SetDataFlags.WrapToNewWorksheet64K to provide support for wrapping at the Excel 97-2003 64K row limit.
  • Added more samples to the SpreadsheetGear Explorer Sample Solutions for C# and VB.
Issues Addressed
  • Fixed bug in bar chart data label layout which caused labels to be positioned on the wrong side of the axis on bars with the same y1 and y2 positions.
  • Fixed issues which caused exceptions when painting or laying out charts which have a width or height of zero.
  • Fixed issues with chart data point and data label formatting not being read from Open XML (xlsx) correctly with certain workbooks.
  • Fixed category axes to wrap on hyphen characters similar to Excel.
  • Fixed bar chart data label manual layout offsets to work correctly on reversed axes.
  • Fixed textbox and comment to no longer allow editing with the keyboard when the "lock text" flag is set and "locked" is not set.
  • Fixed chart placement issues when the WorkbookView area is smaller than size of a default chart.
  • Fixed mouse handling to be less sensitive so that a simple click or double click on a shape or chart is less likely to inadvertently move the shape or chart.
  • Fixed row and column mouse resizing logic to allow for unhiding hidden rows and columns at the bottom or right edge of the display area.
  • Fixed legend and data label text to render more like Excel when linked to empty cell values.
  • Fixed Range, Chart and Shape Explorers to select a better default panel when they are displayed without all panels visible.
  • Fixed legend entry rendering order to work like Excel on stacked charts and horizontal bars.
  • Fixed IOutline.ShowLevels(int rowLevels, int columnLevels) to correctly remember the collapsed and expanded state of each group so that expanding in the future will work as expected.
  • Fixed issues when right-clicking an existing range selection when a WorkbookView has frozen panes.
  • Fixed a number of issues related to Excel 97-2003 (xls) and Excel 2007 (xlsx) file format compatibility.
  • Fixed issues when scaling chart axes with very large and very small values.
  • Fixed chart series to be plotted on a visible axis if the axis the series is set to be plotted on is hidden.
  • Fixed auto series marker sizes to be based on the weight of series lines.
  • Fixed scroll position issues with frozen panes after freezing, removing split, and then freezing at same cell again.
  • Fixed new textboxes to default to a solid fill.
  • Fixed entering of some special case values such as “5 1/8%” to work as Excel does.
  • Fixed some cases where a cell with overflowing text which is not currently in view, but whose text overflows into the current view, does not repaint correctly when the cell is modified.
  • Fixed some calculation problems which occurred in certain cases when a single workbook set contains multiple workbooks with different IWorkbook.Date1904 settings.
  • Fixed a problem with the built-in fraction custom number formats "# ?/?" and "# ??/??" which occurred with certain CultureInfos.
  • Fixed the IRange.Replace(…) method to fire a RangeChanged event on the range of cells actually modified.
  • Fixed some number formats, such as “+0”, to display like Excel instead of adding a backslash before certain characters (SpreadsheetGear 2008 displayed this as “\+0”). This only affects the number format, not the actual formatted text for a cell.
  • Fixed some problems with reading and writing text objects.
  • Fixed the FormulaBar and the IRange.Entry property to display the underlying number instead of an empty string if a date / time cell contains an invalid date / time.
  • Fixed dependant cells to calculate correctly after sorting.
  • Fixed some problems with cell selections and with the Range / Chart / Shape Explorers which occurred when background threads were acquiring locks and making changes to a workbook while the user was interacting with the workbook in the WorkbookView or explorers.
  • Fixed problems reading workbooks which have conditional formats and data validation formulas with range / union / intersection operators.
  • Fixed the IRange.Value property so that setting it to an instance of System.DateTime will format the cell with an appropriate date / time number format if the cell does not already have a date / time number format.
  • Fixed a problem which caused Excel 2007 to sometimes be unable to read a workbook after copying cells which reference a workbook global defined name between different workbook sets.
  • Fixed issues with mouse selections of an entire row or column where the row or column has merged cells.
  • Fixed the line from a comment to the cell containing the comment to paint correctly when the comment and the cell it belongs to are not both displayed in the current view.
  • Fixed some issues with scrollbars which were particularly apparent with wide columns or tall rows.
  • Fixed a problem with the HYPERLINK function which caused an exception to be thrown in some cases when the cell containing the HYPERLINK function was clicked.
See What's New in the Documentation for a list of breaking changes and limitations.


SpreadsheetGear 2008
October 14th, 2008 - SpreadsheetGear 2008 is the most significant upgrade since SpreadsheetGear for .NET 1.0 was released. New features include robust Excel 2007 Open XML (xlsx) support, dynamic chart and range image generation, comprehensive Excel compatible charting support, more rows and columns, named cell styles, RGB colors, theme colors with tinting and shading and more.

New Features
  • Added robust support for reading and writing Excel 2007 Open XML (xlsx) workbooks.
  • Added comprehensive charting APIs in the SpreadsheetGear.Charts namespace.
  • Added support for chart rendering including the most commonly used chart types and options. Supported chart types include area, bar, column, line, pie, stock and XY scatter. Supported chart type options include multiple chart groups (combination charts), stacked and 100% stacked values, bar gap and overlap, line markers, drop lines, high-low lines, open-close bars, exploded pies, and data point labels. Supported axes options include primary and secondary axes sets, auto and manual scaling, major gridlines and tick marks, reversed axes, and tick label positions. Supported general chart options include chart titles, legends, theme colors, auto colors, number formats and fonts.
  • Added support for basic chart editing with the new Chart Explorer.
  • Added the SpreadsheetGear.Drawing.Image class which provides the ability to easily generate an image of a range of cells or a shape (such as a chart) with one line of code. This image can be displayed on a web page, saved to a file or used in a variety of ways in ASP.NET and Windows Forms applications.
  • Increased the maximum number of rows and columns from 65,536 rows and 256 columns to 1,048,576 rows and 16,384 columns.
  • Added support for the new Excel 2007 color model, including 24 bit colors as well as theme colors with tinting and shading, while maintaining support for the old style 56 color palette and indexed colors.
  • Added named cell style support with the IStyles and IStyle interfaces along with IWorkbook.Styles and IRange.Style properties. These APIs provide the ability to add, modify or delete named cell styles as well as the ability to assign a named cell style to a range of cells. Forty-nine built-in named cell styles are included in a new workbook and up to 4000+ user defined named cell styles can be added.
  • Added support for What If tables with the IRange.Table(IRange rowInput, IRange columnInput) method and added support for Calculation.SemiAutomatic which provides for automatic calculation of all except What If tables.
  • Added IFont.ThemeColor and IFont.TintAndShade properties.
  • Added IInterior.ThemeColor, IInterior.TintAndShade, IInterior.PatternThemeColor and IInterior.PatternTintAndShade properties.
  • Added IBorder.ThemeColor, IBorder.TintAndShade, IBorders.ThemeColor and IBorders.TintAndShade properties.
  • Added ITab.ThemeColor and ITab.TintAndShade properties.
  • Increased unique cell format limit from 4095 to 65535.
  • Added support for parsing and unparsing DDE references such as “Application|Topic!Item” and reading and writing these DDE references to Excel 97-2007 workbooks.
  • Adding hyperlinks to cells now modifies the cells to use the “Hyperlink” named cell style instead of simply setting the font style and color.
  • Added SpreadsheetGear.PrintErrors enumeration and IPageSetup.PrintErrors property.
  • Added IWorksheet.TransitionFormEntry property.
  • Added support for dynamic row header width which changes based on the last displayed row.
  • Added read, write and API support for IWorkbook.UpdateLinks property.
  • Added IWorkbookSet.EndCalculate event for notification of background calculation completion in cases where the WorkbookView control is not being used.
Issues Addressed
  • Installation is now more Windows Vista friendly, with all samples now placed under the application data directory instead of being placed under Program Files.
  • SpreadsheetGear 2008 does a better job of working when installed on the same computer as previous versions of SpreadsheetGear for .NET by creating separate “SpreadsheetGear 2008” entries in the Visual Studio Windows Forms Designer Toolbox and in the Windows Start menu.
  • Fixed unparsing of data validation list formulas which have embedded double quotes to add extra double quote.
  • Fixed a bug which occurred when copying cells with IRange.Copy with skipBlanks set to true which caused incorrect formats to be copied to some cells when blank source cells are encountered.
  • Added workaround to read workbooks with seemingly invalid country codes in number formats such as “[$-1012C0A]#,##0;\-#,##0”. SQL Reporting Services apparently creates workbooks with number formats such as this.
  • Fixed to parse formulas such as "=Sheet1!#REF!,Sheet1!#REF!,Sheet1!#REF!” and "=#REF!,#REF!" as Excel does.
  • Fixed a problem which caused a conditional format with a formula such as "=MID(#REF!,1,6)=”"Total”"" to incorrectly evaluate to true.
  • Fixed a bug which occurred when copying certain conditional formats between workbooks.
  • Fixed the SUM function to round to zero as Excel does in cases such as "=SUM(0.1,0.1,0.1,-0.3)".
  • Fixed problems with IWorkbook.NumberToDateTime accuracy which sometimes caused results to be off by 1 millisecond.
  • Fixed problem parsing formulas with the range intersection operator (which is a space character) when using the R1C1 reference style.
  • Improved Excel compatibility of shape positioning.
  • Fixed printing of borders to scale border thickness with zoom setting as Excel does.
  • Fixed writing of Excel 97-2003 workbooks when the workbook has a large number of cells (>1000) with the same data validation criteria where the cells are not contiguous.
  • Fixed the listbox and combobox form controls to properly handle the mouse wheel when they have the focus.
  • Fixed issues with WorkbookView scrollbars sometimes not working correctly when setting the WorkbookView.DisplayReference property.
  • Fixed problem which caused the WorkbookView to sometimes repaint incorrectly when cells are inserted or deleted with multiple panes displayed.
  • Fixed a NullReferenceException which sometimes occurred when the Delete key was pressed while dragging the mouse.
  • Fixed problems which sometimes occurred when copying cells with the PasteType.AllExceptBorders option.
  • Fixed problems with HLOOKUP, VLOOKUP, LOOKUP and MATCH which sometimes occurred when searching within interspersed values of different types.
  • Fixed IRange.Copy with PasteType.ColumnWidth to copy the column hidden state.
  • Fixed bug which caused painting to sometimes be incomplete when IRange.Copy is called where the destination range is automatically grown.
  • Fixed problems with shape position and size which sometimes occurred when row and column outlines were expanded or collapsed.
  • Fixed problems which occurred when the WorkbookView.DisplayReference property was changed while editing a cell.
  • Fixed IRange.Copy of a single cell to a single merged cell to not unmerge the destination cell, and fixed Copy and Paste in the WorkbookView to do the same.
  • Fixed IWorksheet.UsedRange to include cells which have comments but no formatting or value as Excel does.
  • Fixed entering dates between "1/1/100" and "12/31/1899" to be treated as text instead of adding 1900 to the year.
  • Fixed printing to honor IPageSetup.FirstPageNumber.
  • Fixed Range Explorer's Font and Number Format panels to work properly when a background thread is formatting cells other than the currently selected cells.
  • Fixed to allow backslash characters in defined names as Excel does.
  • Fixed bug which caused array formulas which use the range, intersection or union operators to sometimes not calculate correctly.
  • Fixed IRange.Sort to move hyperlinks and cell comments with cells when sorting.
  • Fixed PageUp key to work when no rows are currently visible on screen and fixed related issues with PageDown going past the last row unnecessarily.
  • Fixed cell editing to convert between “\r\n” and “\n” as Excel does to avoid problems when opening in Excel.
  • Fixed setting cell borders to modify adjacent borders from other cells as Excel 2007 does.
  • Fixed scrollbars to scroll to the last row or column of the displayed area of a worksheet correctly when the last row or column is included in the used range.
  • Fixed the Insert Hyperlink… command in the WorkbookView’s context menu to respect the WorkbookView.AllowRangeExplorer property.
  • Fixed to no longer fire extra WorkbookView.Calculate events when background calculation is interrupted.
  • Changed SpreadsheetGear 2008 to use single quotes around sheet names of 'R' and 'C' when unparsing formulas as Excel does.
  • Fixed a problem which caused the OFFSET worksheet function to throw an IndexOutOfRangeException in some very complex workbooks.
  • Added a workaround to read XLS workbooks with invalid cell comments which are created by certain third party components.
  • Fixed reading and writing of conditional format interior patterns to .xls workbooks.
  • Fixed IRange.IsVolatileOrCircular to calculate as needed when automatic calculation is enabled.
  • Fixed unparsing of formulas with array constants containing strings with embedded quotes such as ={"This is a quote: """}.
  • Fixed TRANSPOSE function to no longer convert empty values to zero when an array is returned. Empty is still converted to zero when TRANSPOSE returns a single value.
  • Fixed unparsing of external references in formulas to not include the path for workbooks which are currently loaded in the same workbook set as Excel does.
  • Fixed a problem which occurred when copying with the PasteType.AllExceptBorders option.
  • Fixed data validation Ignore Blank option to work correctly in the WorkbookView control.
  • Fixed IRange.Value to put an empty string in a cell instead of clearing the cell if the cell is formatted as "@" and fixed data entry in the WorkbookView control to clear the cell when an empty string is entered into a cell formatted as text.
  • Added workaround to read files written by DevExpress Report Suite which do not have the proper OLE Compound Document sector padding.
  • Fixed printing to finish calculating as needed when calculation mode is set to automatic.
  • Fixed an IndexOutOfRangeException which occurred with certain large and complex workbooks during calculation.
  • Fixed a chart rendering issue which sometimes caused charts to be clipped, and possibly not rendered at all, when there are other visible shapes or controls (4.0.6.104).
  • Fixed the WorkbookView control to work with the AltGr key (4.0.6.104).
  • Removed the Microsoft .NET Framework 2.0 SP1 requirement. SpreadsheetGear 2008 4.0.6.104 now supports the Microsoft .NET Framework 2.0.50727.42 which was the first RTM of the Microsoft .NET 2.0 Framework.
  • Fixed a problem with some workbooks saved as Excel 97-2003 (xls) which caused Excel 2003 to generate an error message when those workbooks were opened. This problem was related to formatting an entire worksheet or loading a workbook where an entire worksheet had been formatted (4.0.7.103).
  • Fixed data validation drop-down lists, where the lists are populated from cells, to update the drop-down list when those cells are changed through the API (4.0.7.103).
  • Fixed a problem painting shapes which are very narrow, very short, or which use a thick line style (4.0.7.103).
  • Fixed a problem which caused cell comments to display improperly in some cases (4.0.8.104).
  • Fixed problems with data label positioning relative to axes on bar charts (4.0.9.102).
  • Fixed bar chart data label manual layout offsets to work correctly with reversed axes (4.0.9.102).
  • Fixed issue with chart data point formatting not being read in from XLSX correctly when data label formatting is also contained in the file (4.0.9.102).
  • Fixed issues when reading chart data labels in XLSX that were not reading in correct default formatting attached to series data label collection (4.0.9.102).
  • Fixed chart category axes to wrap on hyphen characters similar to Excel (4.0.9.102).
  • Fixed formulas such as "=SUM(A1:A2!A1)", where there are worksheets named "A1" and "A2", to be treated as "=SUM(A!:'A2'!A1)" rather than "=SUM('A1:A2'!A1)" (4.0.9.102).
  • Fixed INDIRECT function to handle references such as "A1!A1" where there is a worksheet named "A1" (4.0.9.102).
  • Fixed problems with solid fills which are set to the Text1 theme color (4.0.10.102).
  • Fixed a problem which caused the size of newly added shapes to sometimes be saved incorrectly when the shape is placed over rows set to use automatic heights (4.0.10.102).
  • Added a work around to handle certain invalid xls workbooks with Cell Comments which have duplicate shape IDs (4.0.10.102).
  • Fixed OFFSET worksheet function to work with negative heights and negative widths as Excel does (4.0.10.102).
  • Added a work around to read certain workbooks which have references to invalid external workbooks (4.0.10.102).
  • Fixed an exception which occurred in some cases with a formula such as =INDIRECT("Sheet!Name") where there is no worksheet named "Sheet" in the workbook containing the formula (4.0.10.102).
  • Fixed a problem which happens very rarely with certain workbooks which causes an invalid workbook to be written when workbooks are saved to the Open XML file format (4.0.10.106).
  • Fixed a bug which caused single accounting underlines to be saved incorrectly to xls workbooks (4.0.10.106).
  • Fixed a problem where certain custom functions get called every time even though they are used in an array formula and return an array (4.0.10.106).
  • Fixed the entry of text starting with "+" or "-" to no longer prepend "=" if the cell is formatted as text (4.0.10.110).
  • Fixed entering an empty string into the WorkbookView to work correctly with merged cells (it was giving an error indicating this could not be done on a merged cell) (4.0.10.110).
  • Fixed SUMIF, COUNTIF, DSUM and the other database functions to handle cases where criteria cells contain numbers entered as text (4.0.10.110).
  • Fixed a number of problems which caused Excel 2003 or Excel 2007 to be unable to properly read various workbooks. The problems were related to certain cases of hidden columns, formulas containing linefeeds, shapes and chart elements with text which starts with or ends with whitespace, certain combinations of repetitive formulas and workbooks which have had cell comments deleted (4.0.10.110).
  • Added a work around to read xlsx workbooks with seemingly invalid "bubble3d" charting elements which are sometimes written by Excel 2007 (4.0.10.114).
  • Added a work around to read xlsx workbooks with "macro" attributes on certain shape elements which are sometimes written by Excel 2007 (4.0.10.114).
  • Fixed a problem which caused rendering of some charts to throw System.OverflowException (4.0.10.116).
  • Fixed a problem which caused a NullReferenceException if a WorkbookView lost focus after entering edit mode and before the cell editor got the focus (4.0.10.116).
  • Fixed a problem which caused a NullReferenceException with IRange.Intersect when one or both IRange's had multiple areas and the result was an empty IRange (4.0.10.116).
  • Fixed a problem which caused formulas with invalid numbers to be created. Such formulas are likely to lead to exceptions. This occurred with formulas such as "=2e308" where a number with scientific notation cannot be represented by a double (4.0.10.120).
  • Fixed a problem which caused an exception to be thrown when reading workbooks written by Excel which include saved linked values, where those saved linked values are blank (4.0.10.124).
  • Fixed a bug where, if an entire worksheet is formatted, but no individual entire columns are formatted, and you clear the formats of a range of cells, the format of the cleared cells will sometimes be left as the format of the entire worksheet rather than setting the format back to the default workbook format (as specified by the “Normal” named cell style) as ClearFormats is supposed to do (4.0.12.100).
  • Fixed problems reading and writing xlsx workbooks with groups / outlines (4.0.12.100).
  • Fixed a problem with the built-in date & time formats which contain "AM/PM", where "AM/PM" would get converted to "AM.PM" when running in a locale where the date separator character is a "." (4.0.12.100).
  • Fixed a bug which caused replacing "*" with anything to create a maximum length string in the cell and then throw an exception trying to create an even longer string (4.0.12.100).
  • Fixed a problem with the way SpreadsheetGear wrote xls and xlsx workbooks containing large numbers of adjacent similar formulas, where Excel would on rare occasions crash or hang upon closing or performing an operation on one of these workbooks, or would create an invalid workbook when saving (4.0.12.100).
  • Fixed a problem where formula cells which depend on defined names, where the defined name is set to a text constant, do not always get updated when the defined name is changed to another text constant (4.0.12.100).
  • Fixed the ADDRESS worksheet function to put single quotes around sheet names if necessary (such as a sheet name which contain spaces) as Excel does (4.0.12.100).
  • Fixed DSUM, DAVERAGE and the other database functions to work with database and criteria field names which are numeric values, such as a field name of "2008" matching a column header with the number 2008 (4.0.12.104).
See What's New in the Documentation for a list of breaking changes and limitations.


SpreadsheetGear for .NET 2007 3.1.2 / 1.7.2
July 31st, 2008 - SpreadsheetGear for .NET 2007 3.1.2 / 1.7.2 is a rollup of hotfixes made since 3.1.1 / 1.7.1 was released in February of 2008.

Issues Addressed
  • Fixed problems which caused cell comments to sometimes pop up in multiple panes, or to be displayed (or caused indicators to be displayed) when the row or column containing the cell comment is hidden.
  • Fixed problem with HLOOKUP and VLOOKUP sometimes returning incorrect results if a range with an absolute reference is used for the 3rd argument.
  • Fixed problem which sometimes caused shapes to snap off the top or left edge of a worksheet when they are moved with the mouse.
  • Fixed problem writing workbook after modifying formulas containing XIRR or XNPV functions which kept Excel from treating it as an Analysis Toolpak function (other Analysis Toolpak functions worked as expected).
  • Fixed problems which caused certain combinations of the OFFSET function in conjunction with certain defined names to return incorrect results.
  • Fixed problem which sometimes caused incorrect column widths to be read from workbooks when the IWorksheet.StandardWidth property has been set in the workbook being read.
  • Fixed problem which occurred when writing workbooks which reference addins such as the Bloomberg RTD(...) function.
  • Fixed issues related to showing modal dialogs during the end edit process including data validation errors and warnings.
  • Fixed database functions such as DSUM to no longer convert text values to numbers in criteria cells where the text value is a date or time with a leading space such as " 5-9".
  • Fixed issue where WorkbookView was not requesting that it be sent keyboard input characters before .NET preprocesses those keys by overriding Control.IsInputChar.
  • Fixed parsing of dates and times such as "1 Feb 2000 12:00 AM" to work as Excel.
  • Fixed painting of borders to scale the thickness of the borders when setting zoom or when printing using fit to pages.
  • Fixed problem which caused conditional formats to sometimes not be painted correctly when they have complex formulas which reference absolute cell references.
SpreadsheetGear for .NET 2007 3.1.1 / 1.7.1
February 25th, 2008 - SpreadsheetGear for .NET 2007 3.1.1 / 1.7.1 changes include the addition of one simple property and a few bug fixes.

New Feature
  • Added IRange.IndentLevel property.
Issues Addressed
  • Fixed problem which caused cell comments to sometimes not be displayed when running in Windows Vista with Aero enabled.
  • Fixed issues with shape hit testing including problems with large pen sizes as well as problems with vertical and horizontal lines.
  • Fixed the OFFSET function to use 1 instead of 0 when the 4th or 5th argument is missing (such as "=OFFSET(C2,1,2,,2)" or "=OFFSET(C2,1,2,2,)").
  • Added workaround to discard bogus hidden formulas associated with external name references (references to defined names in other workbooks) when loading workbooks with SaveLinkValues turned off.
  • Fixed the way cell border property setters change the borders of adjoining cells to behave more like Excel.
  • Fixed problems which caused charts to sometimes not be updated in Excel if they referred to cells containing the INDIRECT function or if they referred indirectly to cells containing volatile functions.
  • Changed in-cell edit textbox to raise text one pixel higher when editing cells with bottom vertical alignment so that descenders and underscores display more reliably.
SpreadsheetGear for .NET 2007 3.1.0 / 1.7.0
December 12th, 2007 - SpreadsheetGear for .NET 2007 3.1.0 / 1.7.0 changes include the addition of Visual Studio 2008 support and a number of bug fixes.

New Features
  • Added Visual Studio 2008 support.
  • Added WorkbookView support for displaying colors from number formats such as "[Color10]General".
  • Added WorkbookView support for pasting rich text cells copied from Excel to the clipboard.
  • Added workaround to read workbooks with invalid worksheet gridline color information (workbooks were created by a 3rd party component).
Issues Addressed
  • Fixed form controls to no longer fire ShapeAction events when they are being initialized.
  • Optimized printing code to make fewer calls into some very slow .NET APIs.
  • Fixed TEXT worksheet function to attempt to convert text to numbers before formatting.
  • Fixed internal event issues which caused the Undo buffer to be cleared when undoing a Replace.
  • Fixed a problem which caused complex formulas which use the OFFSET worksheet function to sometimes return incorrect results.
  • Fixed a problem which sometimes caused an unhandled exception to be thrown when a mouse move event is sent to a WorkbookView control after the WorkbookView's current workbook is closed (only happened when the mouse had been hovering over a cell with a cell comment).
  • Fixed a problem which caused references to external workbooks from defined names to sometimes not be fixed up correctly when worksheets in the external workbook are moved, deleted or renamed.
SpreadsheetGear for .NET 2007 3.0.2 / 1.6.2
October 3rd, 2007 - SpreadsheetGear for .NET 2007 3.0.2 / 1.6.2 changes include a number of bug fixes.

Issues Addressed
  • Added workarounds to read workbooks written by third party reporting product.
  • Fixed problems with formula reference fixups in array formulas during insert, delete and cut followed by paste.
  • Fixed cases where converting numbers between 0.0 and 1.0 to text used "." instead of the culture specific decimal separator.
  • Fixed the on-screen position of a data validation drop-down list when the drop-down list is associated with a merged cell spanning multiple columns.
  • Fixed a case in the WorkbookView control where clicking and dragging with the mouse threw an exception when there were no cells visible because all rows or columns had been scrolled out of view.
  • Fixed WorkbookView printing to honor the IPageSetup.PaperSize property.
  • Fixed a problem which sometimes caused too large of a range to be used when pasting from Excel to the WorkbookView control.
  • Fixed formats such as "dd.mm.yyyy" to treat "mm" as minutes instead of months for date formats which use a period as a separator.
  • Made IWorkbookSet.MaxRecursions public to allow increasing this value for improved performance when a large stack is known to be available or decreasing to avoid stack overflow exceptions which occurred in rare cases.
  • Fixed a problem reading some workbooks with large numbers of charts.
  • Fixed WorkbookView painting problems which occurred when cutting, pasting and clearing cells with thick borders.
  • Improved rounding of numbers to be more like Excel in edge conditions for certain ranges of numbers.
  • Fixed printing problems which occurred when row and column headers are printed at the same time as row and column titles.
  • Fixed active sheet index problem when saving copied WorkbookWindowInfo with bogus active sheet index after sheets are deleted.
  • Fixed a problem setting custom number formats on workbooks created by some non-US versions of Excel which caused null reference exceptions.
  • Fixed painting problems which occurred when using PageUp and PageDown where the selection doesn't change.
SpreadsheetGear for .NET 2007 3.0.1 / 1.6.1
July 30th, 2007 - SpreadsheetGear for .NET 2007 3.0.1 / 1.6.1 changes include IWorkbook.DateTimeToNumber and IWorkbook.NumberToDateTime methods as well as a number of bug fixes.

New Features
  • Additional SpreadsheetGear Explorer Solution samples.
  • IWorkbook.DateTimeToNumber and NumberToDateTime methods.
Issues Addressed
  • Enhanced the layout of the data validation drop-down listbox to drop down under the linked cell as well as improving the apperance when placed next to a cell. Also fixed issues when used with various screen DPIs, Display Settings, and Zoom Magnification levels as well as a problem which caused data validation lists to not be removed after clearing data validation from a cell.
  • Fixed conditional formats to stop at the first condition which evaluates to true as Excel does.
  • Fixed parsing of strings in formulas, conditional formats and data validation lists to adhere to the 255 character file format limit.
  • Fixed issues when closing workbooks or changing workbook structure while editing a cell.
  • Added a workaround so that Formula One ActiveX can read workbooks written by SpreadsheetGear for .NET.
  • Fixed a layout issue when grouping rows and columns across frozen panes.
  • Fixed a problem which occurred when calculating references to defined names in external workbooks which might cause changes in the external workbook to fail to propagate during calculation.
  • Fixed a problem which sometimes caused null reference exceptions after closing a workbook with defined names which are referred by another workbook, where the workbook with the external defined name references is left open.
  • Fixed painting of workbooks with frozen panes to no longer paint the line designating the split beyond the last displayed row or column, when there are not enough rows or columns to fill the WorkbookView.
  • Added workarounds for reading certain workbooks which are written by third party components.
  • Fixed a problem which caused some workbooks containing charts with certain text options to be saved incorrectly.
  • Fixed a problem which caused resizing rows or columns on a sheet with frozen panes to incorrectly scroll up or left.
  • Fixed a problem which sometimes caused the IF(...) function to return incorrect results in some cases where the second or third argument consists entirely of an absolute range with 1xN or Nx1 rows and columns.
  • Fixed calculation problems with some large workbooks which contain large numbers of forward references.
  • Fixed copying of cell comments to copy the width and height of the cell comment.
  • Fixed Workbook Explorer to update relative references in defined name formulas when the current selection changes.
  • Fixed a problem fixing up relative references in data validation formulas and conditional format formulas after cutting and pasting.
  • Fixed scrolling problems which occurred in some cases when the last rows or columns of a worksheet are hidden.
  • Fixed CommandManager to show errors using the ShowError event.
  • Fixed problems with Undo of conditional formats and data validation criteria which use relative cell references.
  • Fixed WorkbookView to fire the ShapeSelectionChanged event when shapes are unselected.
  • Changed conversion of numbers to text to provide more significant digits including the IRange.Entry property, numeric cell editing including FormulaBar and in-cell editor, as well as numbers in custom number format comparison operators, conditional format comparisons and data validation criteria.
SpreadsheetGear for .NET 2007
June 12th, 2007 - SpreadsheetGear for .NET 2007 enhancements include conditional formatting, grouping and outlining, find and replace, sort, Visual Basic SpreadsheetGear Explorer Sample Solution, new APIs, a few optimizations, GUI improvements and a number of bug fixes.

New Features
  • Conditional formatting with full API, WorkbookView, and Range Explorer support.
  • Grouping and outlining with additional APIs, WorkbookView, and Workbook Designer support.
  • Find and replace API, WorkbookView support (CTRL+F / CTRL+H), and modeless find, find all, replace and replace all dialog.
  • Sort API and modeless sort dialog.
  • New Visual Basic SpreadsheetGear Explorer Sample Solution.
  • More samples in the SpreadsheetGear Explorer Solutions and online documentation.
  • Data validation support in the Range Explorer.
  • IRange.NumberFormatType and IRange.ValueType properties and associated enumerations.
  • IRange.Intersect(IRange), IRange.Union(IRange) and IRange.Subtract(IRange) methods.
  • IRange.ValidationDefined property.
  • IWorkbook.IsModified property.
  • WorkbookView.LocationToRange and WorkbookView.RangeToLocation methods.
  • WorkbookView.ShowError event and framework.
  • WorkbookView support for unhiding rows and columns with the mouse.
  • More zoom options in the Workbook Explorer.
  • Implemented Delete key support in Workbook Explorer for sheets and defined names.
  • Optimize painting of worksheets with large numbers of merged cells.
Breaking Changes
  • Most public core APIs now throw an exception when all of the following are true:
    • The current thread has not acquired a lock on the workbook set using GetLock.
    • The workbook set is associated with any GUI element (WorkbookView, etc...).
    • Background calculation is true.
    • Calculation is not set to Manual.
  • The WorkbookView control now displays a Tooltip indicating that locks have not been released when KeyDown, KeyUp, MouseDown, MouseMove or MouseUp events occur with a pre-existing lock, indicating that either GetLock or BeginUpdate has been called without a corresponding ReleaseLock or EndUpdate call.
  • Fixed enumeration of IRange.Rows to return rows instead of cells and enumeration of IRange.Columns to return columns instead of cells as Excel does.
  • Fixed ISheet.CopyBefore and ISheet.CopyAfter to create a new sheet name such as "Sheet (3)" when copying a sheet with a name such as "Sheet (2)".
  • Fixed copying an entire worksheet, where a workbook global defined name references that worksheet and the defined name is not referenced by any cells in the source worksheet, to copy the workbook global defined name to a worksheet specific defined name in the new worksheet. These defined names were always copied when they were referred to by a cell in the source worksheet.
  • Fixed IWorksheet.UsedRange to take entire row formatting and entire column formatting into account as Excel does.
Issues Addressed
  • Fixed problems painting cells with horizontal alignment set to HAlign.Fill and repeating characters in the number format.
  • Increased the maximum number of named styles from 1023 to 4095 due to some workbooks written by Excel 2007 having large numbers of named styles.
  • Fixed printing to transfer Landscape and Black & White settings from a worksheet's page setup info to the default printer settings and back.
  • Fixed editing of cells formatted as percent to properly append "%" after starting a cell entry with "-5", "+5", ".5", etc...
  • Fixed a bug which occurred with certain worksheet layouts when inserting cells and shifting right.
  • Fixed the WorkbookView control to not show the active cell after a selection if ScrollRow or ScrollColumn are set after the selection is changed.
  • Removed 1023 picture limit and fixed an associated problem writing some workbooks with large pictures or large numbers of shapes.
  • Fixed data validation lists which come from cells to ignore case as Excel does.
  • Fixed inserting or deleting the first row or column where a formula references entire columns or entire rows to no longer change these references to #REF!
  • Fixed setting IRange.Value or IRange.Formula, where the range represents multiple cells and the new value or formula changes the number format of the cell, to copy the new number format to all of the cells in the represented range.
  • Fixed protection problems with TextBox and LockText property.
  • Fixed a bug which caused Excel to crash when opening a workbook created by copying an entire worksheet which had selected shapes.
  • Optimized loading and activating nodes in the various explorers for a cleaner appearance when first displaying.
  • Fixed the Workbook Explorer to work better with inactive worksheet and workbook WindowInfos. The WorkbookView control keeps it's own copy of IWorkbookWindowInfo and IWorksheetWindowInfo for inactive worksheets and inactive workbooks to facilitate the ability to have different window info settings on separate WorkbookView controls. The Workbook Explorer now propagates changes to the most reasonable of these copies as well as to the core.
  • Fixed a problem which caused SpreadsheetGear for .NET to hang if a custom function was added after a workbook was loaded, where a formula in the workbook passes a volatile argument to the custom function.
  • Fixed FormulaBar name box to be disabled while in cell edit mode.
  • Fixed bug with edit mode starting when mouse button is down. It now works more like Excel.
  • Fixed a problem where a worksheet's defined names collection would not get updated after adding the first defined name.
  • Fixed scrollbar form control problem when linked to cells on a protected worksheet.
  • Fixed painting of row and column headers and sheet tabs to use the default fonts from the associated workbook set.
  • Fixed setting IWorkbook.FullName to update external references from other workbooks which reference a workbook of the newly specified name to reference the renamed workbook.
  • Added workaround for .NET 2.0 MDI framework problem which caused the Workbook Designer to hang when running at screen resolutions of 144+ DPI.
  • Fixed Copy to clipboard followed by Paste Values of a defined name reference to paste the value instead of #REF!.
  • Fixed pickers and custom dialog controls to use SystemFonts.DefaultFont.
  • Fixed problems with formula editing point to reference mode when pointing to a cell in another worksheet.
  • Fixed Workbook Designer menus to take better actions in the Workbook Explorer such as activating controls, inserting defined names, etc...
  • Fixed problem when double-clicking sheet tabs which are not fully scrolled into view.
  • Fixed Workbook Explorer defined name nodes to synchronize properly after an entire worksheet is copied.
  • Fixed IRange.MergeCellsDefined property to work like Merged Cells checkbox in Excel.
  • Fixed data validation with lists to honor the InCellDropdown setting.
  • Fixed FormulaBar to no longer display hidden defined names for the formula address.
  • Fixed Cut followed by Paste to correctly fix up references in chart series, data validation custom formulas and form controls.
  • Fixed IRange.Copy(IRange) to copy to multiple areas.
  • Fixed WorkbookView to display cell comment indicator after copying cells with comments.
  • Fixed unhandled exception which occurred when a shape is inserted when existing shapes are selected.
  • Fixed problem with IWorksheetWindowInfo.RangeSelection setter sometimes not repainting the WorkbookView.
  • Fixed printing headers and footers with &D and &T to use short date and time formats.
  • Fixed reading and writing of workbooks which contain very long printer setup records.
  • Fixed a number of cases where formatting a number with a general format used a period instead of the decimal separator of the workbook set's CultureInfo.
  • Fixed Workbook Explorer to update the display of defined names when a worksheet name is changed.
  • Fixed a problem with the IRange.UsedRange property which caused it to return all columns when an entire worksheet was formatted with a non-default cell format (3.0.0.121 / 1.6.0.121).
  • Fixed a problem which caused invalid workbooks to be written when references such as Sheet1!$A$1:$B$2 get changed to #REF!$A$1:$B$2 or Sheet1!#REF! during copy, insert or delete of cells or worksheets (3.0.0.121 / 1.6.0.121).
  • Fixed a problem which caused the Range Explorer to throw an unhandled exception when the Conditional Formats node is excluded and the current selection is changed (3.0.0.121 / 1.6.0.121).
SpreadsheetGear for .NET 2.5.1 / 1.5.1
April 2nd, 2007 - SpreadsheetGear for .NET 2.5.1 / 1.5.1 enhancements include WorkbookView cell comment indicators, a new WorkbookView.ExtraColor property and a number of bug fixes.

New Features
  • Added cell comment indicators to the WorkbookView control.
  • Added the WorkbookView.ExtraColor property which specifies the color of the extra space to the right of and below the last displayed cells.
Issues Addressed
  • Fixed a problem which sometimes caused Excel to fail to open workbooks created by copying entire worksheets which contain JPG picture objects, PNG picture objects, form controls which reference a non-existent worksheet or charts with custom number formats.
  • Fixed Data Validation with a list of "TRUE,FALSE" to work like Excel (allow entry of "True" or "true").
  • Fixed a problem with inserting or deleting cells which sometimes caused relative 3D cell references to not be fixed up correctly.
  • Fixed to write IF() and CHOOSE() worksheet functions to XLS files so that all arguments are not evaluated by Excel, which could lead to bogus circular reference reports (this did not affect the way SpreadsheetGear calculated workbooks).
  • Fixed the IRR() function to correctly handle an initial guess of 0.0 which was being treated the same as the default guess (0.1).
  • Fixed default and popup cell comment positions for merged cells which span multiple columns.
  • Fixed printing from Print Preview to print the correct current page number in print headers and footers.
  • Fixed cases where the WorkbookView selection indicator and / or the Formula Bar were not updated correctly.
  • Added workaround for problems with .NET's MDI Windows Menu.
  • Fixed default print range to include visible shapes.
  • Fixed printing in black and white to correctly print double cell borders.
  • Fixed problems painting certain rows with horizontal alignment set to filled or center across cells.
  • Fixed the behavior of WorkbookView cell entries with leading "-" or "+" to behave more like Excel.
  • Fixed ISheet.EvaluateValue and ISheet.EvaluateRange to honor IWorkbookSet.Calculation setting (don't calculate referred to cells if calculation is set to manual).
  • Fixed to no longer throw null reference exceptions which occurred when evaluating certain formulas using ISheet.EvaluateValue, ISheet.EvaluateRange or IName.RefersToRange, where the formula being evaluated refers to cells which need to be calculated.
  • Fixed IWorkbook.GetDataSet(...) to return all DataTables when the referred to range contains multiple areas which are specified with absolute references.
  • Fixed IRange.Copy(IRange destination) to allow copying to a destination range which represents multiple areas.
  • Fixed Cut followed by Paste to correctly fix up cell references in chart series, data validation custom formulas and form controls.
  • Improved the performance of SUMIF, COUNTIF and database functions (DCOUNT, DSUM, etc...) which reference a significant number of sequential empty rows.
  • Fixed and improved API documentation for various methods and properties.
  • Fixed a problem which caused incorrect formula evaluation in rare cases after copying certain formulas (2.5.1.117).
  • Fixed a problem which caused Excel to generate invalid workbooks after using SpreadsheetGear for .NET to copy an entire worksheet which contained shapes, loading the new workbook into Excel, adding another shape in Excel (including a cell comment) and saving the workbook from Excel (2.5.1.117).
  • Fixed a problem which sometimes caused SpreadsheetGear for .NET to write workbooks with a first shown sheet tab index greater than the number of visible sheets, causing Excel to display no sheet tabs and crash when the sheet tab scroll button is clicked (2.5.1.119).
  • Fixed an unhandled exception which sometimes occurred when selecting an entire row or column which intersects with a merged cell at the left column or top row of the WorkbookView control (2.5.1.119).
SpreadsheetGear for .NET 2.5.0 / 1.5.0
January 9th, 2007 - SpreadsheetGear for .NET 2.5.0 / 1.5.0 enhancements include API and GUI support for cell comments, data validation, pictures, text boxes, check boxes, drop-downs, list boxes, spinners, scrollbars, buttons, lines, many autoshapes and more.

New Features
  • Added API and GUI support for cell comments, pictures, text boxes, check boxes, drop-downs, list boxes, spinners, scrollbars, buttons, lines and many autoshapes. GUI support includes the ability to insert (see the Insert menu), size, move and set properties (right click on a shape and click Shape Explorer...).
  • Added limited support for custom controls with the SpreadsheetGear.Windows.Forms.UIManager class.
  • Added API support and limited GUI support for data validation (data validation is honored upon cell entry but cannot be changed in the Range Explorer until a future version).
  • Added support for reading and writing form controls with cell references and lists (as well as the API and GUI support noted above).
  • Reimplemented Range Explorer Borders Panel so that it is easier to understand and use.
  • Improved in-cell editor now supports multiline text, wrapped text and uses the format of the cell being edited.
  • Exposed more functionality in CommandManager and associated classes.
  • Added support for parsing dates as yyyy/mm/dd regardless of the locale.
  • Added Sheet property to ActiveTabChanging and ActiveTabChanged event arguments.
  • Added setters for a number of WorkbookView, IWorkbookWindowInfo and IWorksheetWindowInfo properties related to the currently selected range and sheet.
  • Added SpreadsheetGear.IName.Visible property.
  • Improved the SpreadsheetGear Explorer Sample Solution.
Issues Addressed
  • Implemented workaround for Visual Studio 2005 Visual Basic compiler crash (see Microsoft KB 920145).
  • Fixed pointing at 3d references in formulas to work with worksheet names which include spaces.
  • Fixed FormulaBar name box to update as needed when defined names are modified.
  • Fixed undo to work correctly with commands which include multiple areas.
  • Fixed copying and pasting of 3d references to work correctly using a workbook named "Book1".
  • Fixed problem with cutting and pasting which sometimes caused relative references to incorrectly be converted to #REF!
  • Fixed problem with IWorksheet.EvaluateValue(...) which caused errors to be ignored with some formulas.
  • Fixed unparsing of functions to use the correct argument separator when the argument separator is not a comma.
  • Fixed printing problem which caused SpreadsheetGear for .NET to hang in some cases with hidden rows or hidden columns.
  • Fixed problems with some combinations of WorkbookView.DisplayReference and frozen rows or columns.
  • Implemented workarounds for invalid workbooks which are sometimes placed on the clipboard by Excel.
  • Fixed IRange.GetAddress(...) method to add single quotes around workbook and worksheet names as needed.
  • Fixed problem with selecting multiple ranges in a WorkbookView when the argument separator is not a comma.
  • Fixed printing and print preview to correctly honor DisplayZeros setting.
  • Fixed problem which caused cell entries such as 999e999 to be entered as #NUM! rather than as text.
  • Fixed WorkbookView so that clicking on cells with the HYPERLINK(...) worksheet function works like Excel (requires "#" before a range reference).
  • Fixed to properly display centered and right justified cells with trailing spaces.
  • Fixed problem which caused some defined names to incorrectly return #NAME! in certain complex workbooks where the defined name is involved in a circular reference.
  • Fixed Paste Special/Transpose to select the correct range and fixed Undo to work correctly after Paste Special/Transpose.
  • Fixed problems with copying cells with PasteType.AllExceptBorders (also affected Paste Special/All Except Borders).
  • Fixed reading and writing workbook number formats using locales which do not use comma for thousands separator and period for decimal separator.
  • Fixed problems displaying worksheet tabs which sometimes occurred after changing the order of sheets in a workbook.
  • Fixed problem which caused data in column IV to not be cleared when Deleting cells and shifting left.
  • Fixed null reference exception which occurred when entering formulas such as "=OtherBook.xls!MyNameA + MyNameB".
  • Fixed problem with F4 toggling between relative and absolute references in certain formulas.
  • Optimized Insert and Delete to operate more efficiently in cases where an entire worksheet had been formatted.
  • Fixed selection code to finish changing the current selection, including firing of selection events, when the Shift key is pressed.
  • Fixed entering of new values into a cell formatted as percent to append "%" when entry of a new value is started.
  • Fixed problems which occurred when printing from Print Preview.
SpreadsheetGear for .NET 2.1.0 / 1.4.0
September 25, 2006 - SpreadsheetGear for .NET 2.1.0 / 1.4.0 enhancements include support for adding pictures to a worksheet, hyperlink support, password protected worksheets, sheet tab colors, a new command manager, new WorkbookView events, Paste Special, a new SpreadsheetGear Explorer Sample Solution for Visual Studio 2005 and more.

New Features
  • New SpreadsheetGear Explorer Sample Solution for Visual Studio 2005.
  • Added the ability to add pictures to a worksheet with the new IWorksheet.Shapes.AddPicture method.
  • Added reading, writing, API and GUI support for hyperlinks, password protected worksheets and sheet tab colors.
  • Added CommandManager and Command classes which provide the ability to add custom undoable commands as well as the ability to override the behavior of common commands.
  • Added RangeSelectionChanging, ActiveTabChanging and ActiveTabChanged events to the WorkbookView control.
  • Added the ability to specify which categories are displayed by the Range Explorer with the CategoryFlags property.
  • Added Paste Special command with many options including the ability to consolidate and transpose cells.
  • Added support for the HYPERLINK() worksheet function.
  • Added support for providing a default custom function by specifying a function name of "*".
  • Added SpreadsheetGear.CustomFunctions. IArguments.CurrentFunctionName property which returns the name of the function currently being evaluated.
  • Added SpreadsheetGear.CustomFunctions. IArguments.CurrentFormula property which returns the formula of the cell currently being evaluated.
  • Added custom cursors to the WorkbookView control.
  • Enhanced IRange.Copy to support copying to destination ranges with multiple areas.
  • Added undo support to Insert, Delete and Paste after Cut.
  • Added PointsToRow, RowToPoints, PointsToColumn and ColumnToPoints methods to IWorksheetWindowInfo.
  • Added PrintQuality and PrintQualityVertical properties to IPageSetup.
  • Added support for maintaining the position and/or size of shapes with fixed position and/or size during Insert, Delete, Row Height changes and Column Width Changes.
Issues Addressed
  • Fixed WorkbookView control to add leading "=" to formulas entered with leading "+" or "-".
  • Fixed WorkbookView problem which caused sheet names with descenders to be clipped at certain screen resolutions.
  • Fixed problem displaying the correct sheet tab when selecting a sheet which comes after a hidden sheet.
  • Fixed problem writing workbooks with references to external VBA modules but which do not include their own VBA modules.
  • Fixed to no longer set the default print resolution to 300 and the default paper size to Letter.
  • Fixed IRange.Select() to grow the selection as needed for merged cells.
  • Improved support for running the Range Explorer and Workbook Explorer at non-standard screen resolutions.
  • Fixed Workbook Explorer to update defined names after Insert, Delete, etc...
  • Fixed printing from the WorkbookView or Workbook Designer to get printer settings from the output device.
  • Fixed Workbook Explorer to disable options when editing cells.
  • Added confirmation message when setting Precision as Displayed from the Workbook Explorer.
  • Fixed problems with copying and saving some formulas with external cell references.
  • Fixed problem with IRange.CopyFromDataTable when inserting a large number of rows.
  • Fixed to read files written by Macintosh Excel 2004 which were unreadable in certain cases.
  • Improved TINV, FINV and BETAINV worksheet functions to return results for a wider range of inputs.
SpreadsheetGear for .NET 2.0.1 / 1.3.1
August 21, 2006 - SpreadsheetGear for .NET 2.0.1 / 1.3.1 enhancements include support for reading and writing VBA Macros, an API for returning arrays from custom functions, support for the USDOLLAR() function and improved WorkbookView performance.

New Features
  • Added support for reading and writing VBA macros.
  • Added SpreadsheetGear.CustomFunction.IValue.SetArray(double[,]) and SetArray(object[,]) methods to enable custom functions to return array results.
  • Improved IWorkbook.SaveToStream and IWorkbooks.OpenFromStream to work with streams which are not seekable.
  • Added support for the USDOLLAR() function.
  • Added "Calculate" and "Calculating" messages to the Workbook Designer status bar.
  • Improved performance of painting a WorkbookView after calculation completes.
  • Added support for reading and writing workbooks with DDE links.
Issues Addressed
  • Fixed problems with Undo and Redo after saving and closing workbooks.
  • Fixed several minor issues with the WorkbookView and WorkbookDesigner.
  • Fixed WorkbookView problem which sometimes caused cell text to be painted in the wrong location.
  • Fixed IRange.AutoFit to throw exception for invalid ranges.
  • Fixed unparsing of number formats such as "###,##0" to no longer return an extra comma at the start of the number format.
  • Fixed unparsing of number formats to omit leading "\" for many characters as Excel does.
  • Fixed ISheet.EvaluateValue and ISheet.EvaluateRange to work correctly with references to defined names in external workbooks.
  • Fixed the IRange API to allow formatting part of a merged cell as the Excel API does.
  • Improved TINV, FINV and BETAINV worksheet functions to return results for a wider range of inputs.
  • Fixed IRR to never return a result <= -1 and added an initialization step which helps IRR to find a more appropriate solution when multiple solutions > -1 are available.
  • Fixed problem which caused certain formulas containing ROW() or COLUMN() to fail to recalculate after these formulas are copied to other cells.
  • Fixed parsing of formulas which reference names which begin with "true" or "false".
  • Fixed Cut to no longer lock the cut cells if the worksheet has protection enabled.
  • Fixed to no longer allow creation of workbooks with FitToPagesTall or FitToPagesWide set to zero when FitToPages is true.
SpreadsheetGear for .NET 2006
June 30, 2006 - SpreadsheetGear for .NET 2006 enhancements include a rich Windows Forms Spreadsheet Control, Formula Bar, Workbook Designer, Workbook Explorer, Range Explorer and interruptible background calculation as well as numerous new classes, methods and properties.

New Features
  • SpreadsheetGear.Windows.Forms.WorkbookView provides viewing, navigation and editing support which is familiar to Excel users.
  • In-cell editing and optional SpreadsheetGear.Windows.Forms.FormulaBar control provide the ability to enter and edit cell values and formulas, including support for pointing at cell references in formulas across worksheets and workbooks.
  • Smart data entry with automatic recognition and formatting of dates, times, percentages, currency, scientific notation and fractions.
  • SpreadsheetGear.Windows.Forms.WorkbookDesigner provides an MDI Windows application which may be used from within Visual Studio 2005 at design time or by applications at run time.
  • SpreadsheetGear.Windows.Forms.RangeExplorer provides extensive modeless formatting of the currently selected range with support for alignment, merged cells, borders, fonts, colors, patterns, number formats and protection options.
  • SpreadsheetGear.Windows.Forms.WorkbookExplorer provides the ability to manipulate workbooks, worksheets and defined names as well as their properties.
  • Support for multiple worksheets in each workbook and multiple workbooks associated with each WorkbookView.
  • WorkbookView.DisplayReference and WorkbookView.DisplayReferenceName properties allow complete control over what appears for each sheet tab, including the ability to make multiple workbooks appear as one workbook.
  • Cut, copy and paste support including rich data and formatting interchange with Excel and full formula fixups.
  • Frozen rows and columns, split panes, zoom, multi-level undo/redo, autofit rows and columns, goto, clear, printing, print preview, interruptible background calculation, real time workbook updates and more.
  • Full integration with Visual Studio 2005 including the ability to use the Workbook Designer, Workbook Explorer and Range Explorer at design time.
  • Interruptible background calculation including SpreadsheetGear.IWorkbookSet. BackgroundCalculation, IWorkbookSet.GetLock(), IWorkbookSet.ReleaseLock(), IWorkbookSet.HasLock, IWorkbookSet.BeginUpdate() and IWorkbookSet.EndUpdate().
  • Added SpreadsheetGear.IWorkbooks.Contains(IWorkbook), IWorksheets.Contains(IWorksheet), ISheets.Contains(ISheet) and INames.Contains(IName) methods.
  • Added SpreadsheetGear.IWorksheetWindowInfo. ActiveCellAreaIndex and IWorksheetWindowInfo.SetSelection(.).
  • Added Factory.GetWorkbook(.) overrides which take a CultureInfo.
  • Increased maximum number of sheets from 255 to 65531.
  • Significantly improved performance of IWorksheets[string worksheetName] and ISheets[string sheetName], particularly with large numbers of worksheets/sheets.
  • Added SpreadsheetGear.IRange.ShrinkToFit property.
  • Added support for setting IRange.Value to an Int64 value.
  • Added SpreadsheetGear.LineStyle.Continuous to replace the deprecated LineStyle.Continous.
  • Significant performance improvements when using SpreadsheetGear.IRange to get border properties of a large area.
  • Added SpreadsheetGear.IPageSetup.PrintArea, PrintTitleRows, PrintTitleColumns and FitToPages properties.
  • Added AllowPartiallyTrustedCallersAttribute to the SpreadsheetGear.dll assembly.
  • Changed SpreadsheetGear.IWorkbook.Calculate() and CalculateFull() to mark a workbook set as needing calculation and defer to background calculation when appropriate, typically when IWorkbookSet.BackgroundCalculation is true and the current thread has acquired a lock with IWorkbookSet.GetLock() (does not change the way these methods work in existing applications which could not have called GetLock()).
  • Added SpreadsheetGear.IWorkbookSet.DefaultFontName and DefaultFontSize. Changed the default font used by a workbook set for Japanese, Korean and Chinese cultures.
  • Added SpreadsheetGear.CustomFunctions.IArguments. ClearError method (2.0.0.49).
  • Added support for System.Single and System.Byte to IRange.Value and IRange.CopyFromDataTable (2.0.0.49).
Breaking Changes
  • Closing a workbook, deleting a sheet or disposing of a workbook set now sets numerous properties to null. For example, when a worksheet is no longer valid, it's Workbook and WorkbookSet properties will return null.
  • Fixed creating new workbook with multiple worksheets to select the first worksheet rather than the last.
Issues Addressed
  • Fixed the DATE() worksheet function to work correctly with months of -11, -23, -35, etc.
  • Fixed a problem which sometimes occurred when loading two workbooks, where workbook A refers to workbook B, and the number and/or order of sheets in workbook B has changed since workbook A was saved.
  • Fixed AutoFit of columns to work more like Excel when dealing with merged cells and cells with wrapped text.
  • Fixed copying of locked cells to unlocked cells in a protected worksheet to unlock the new cells as Excel does.
  • Fixed SpreadsheetGear.IRange.RowHeight to return an appropriate height when the row is set to automatic height and changes are made which affect the row height.
  • Improved support for automatically setting the format of a cell when a date, time, percent, currency, scientific notation, fraction, etc. is entered. SpreadsheetGear for .NET now changes the format even if it is not the default number format when the type of the new format is significantly different from the current number format, such as changing from $123 to 50%.
  • Fixed problem which caused "Invalid shape index" exception with some workbooks.
  • Fixed SpreadsheetGear.IRange.Value and IRange.Formula to allow entry of a single "=" as Excel does.
  • Fixed problem with Cut, Copy and Paste which sometimes caused formula cell values to be lost (2.0.0.49).
  • Fixed null reference exception which sometimes occurred when making an undoable change to an entire column or entire row in the WorkbookView control (2.0.0.49).
  • Fixed IName.Name property setter to throw an exception if the new name would create a duplicate defined name (2.0.0.49).
  • Fixed pasting from the clipboard to no longer clear the formats of the destination cells when pasting text from the clipboard (2.0.0.49).
  • Added workaround to read Biff8 workbooks which are sometimes written to the clipboard by Excel with invalid font indexes (2.0.0.49).
  • Fixed parsing of certain formulas such as "=SUM(aaa:bbb)" (2.0.0.49).
  • Fixed some problems with editing of defined names in the Workbook Explorer (2.0.0.49).
  • Fixed null reference exception which sometimes occurred when deleting a worksheet which has undoable actions associated with it (2.0.0.49).
  • Fixed cell borders to paint on bottom and right edges when WorkbookView control is scrolled to bottom or right edge of visible cells (2.0.0.49).
  • Improved performance when using Workbook Explorer with workbooks which have many worksheets and/or many defined names (2.0.0.49).
  • Fixed row and column header painting issues when only the row or column header is visible (2.0.0.49).
  • Fixed Formula Bar to update when last workbook is closed in the Workbook Designer (2.0.0.49).
  • Fixed some WindowInfo problems when deleting a worksheet in a non-active WorkbookView (2.0.0.49).
SpreadsheetGear for .NET 1.2
March 28, 2006 - SpreadsheetGear for .NET 1.2 enhancements include the ability to read and write charts, pictures, text and drawing objects as well as copy, insert, move and delete entire worksheets.

New Features
  • Read and write charts, pictures, text and drawing objects.
  • Ability to modify the data source for a chart.
  • Copy entire worksheets with ISheet.CopyBefore and ISheet.CopyAfter.
  • Move entire worksheets with ISheet.MoveBefore and ISheet.MoveAfter.
  • Insert worksheets with IWorksheet.AddBefore and IWorksheet.AddAfter.
  • Delete worksheets with ISheet.Delete.
  • High performance SpreadsheetGear.Advanced.Cells.IValues interface for getting and setting cell values and formulas.
  • Evaluate any Excel compatible formula with ISheet.EvaluateValue and ISheet.EvaluateRange.
  • Added the ability to wrap rows from a DataTable to new worksheets when a DataTable does not fit on a single worksheet with SetDataFlags.WrapToNewWorksheet.
  • Added support for System.DBNull, System.DateTime and System.Decimal to IRange.CopyFromDataTable and IRange.Value.
  • Added the IRange.Name property to find the first defined name which refers to a range.
  • Read and write cell data validation information.
  • Read and write formatting styles.
  • Added CurrentRow, CurrentColumn and CurrentWorksheet properties to the SpreadsheetGear.CustomFunctions.IArguments interface.
  • Added IWorksheet.Range and IRange.Range as a convenience to those who are familar with the Excel API.
  • Added IRange.RowCount, IRange.ColumnCount. IRange.AreaCount and IRange.GetArea.
  • Significantly improved calculation performance for most workbooks which utilize iteration.
  • Significantly improved performance for adding defined names as well as for calculating most workbooks which utilize defined names.
  • Optimized IWorksheet.UsedRange to cache results.
  • Added support for reading and writing cell comments. (1.2.0.23)
  • Added IWorkbookSet.ReadObjects property which makes it possible to ignore drawing objects when reading a workbook. (1.2.0.23)
Issues Addressed
  • Fixed a problem with parsing some formulas which reference an addin function.
  • Fixed IRange.CopyFromDataTable to check for partial merged cells, partial array formulas and locked cells.
  • Fixed a number of help file errors.
  • Fixed a problem which caused workbooks to grow very large when copying all the cells of one worksheet to a worksheet in another workbook when the default cell format is not the same.
  • Fixed a problem which caused workbooks to grow very large when the heights of all rows are set to the same value.
  • Fixed ISheet.Name to disallow creating multiple sheets with the same name.
  • Fixed IRange.AutoFit to correctly recognize and ignore merged cells.
  • Fixed ISheet.Visible to update the active sheet as needed.
  • Fixed ISheet.Visible to disallow hiding the last visible worksheet.
  • Fixed to parse defined name formulas without a leading "=" as Excel does.
  • Fixed to parse "=Sheet!#REF!" as Excel does.
  • Fixed IRange.Hidden to work with multiple areas.
  • Fixed setting IRange.Value to no longer change the number format of a cell which already has a non-default number format.
  • Fixed to properly handle defined names where the name starts with what looks like a valid cell reference followed by an underscore or a period, such as A1_" or "A1.". (1.2.0.5)
  • Fixed ISheet.CopyBefore and ISheet.CopyAfter to copy all cell formatting, not just the number formats. (1.2.0.7)
  • Fixed problem with ISheet.Delete not fixing up some 3D references correctly. (1.2.0.9)
  • Fixed problem with IRange[string index] not handling sheet specific defined names. (1.2.0.11)
  • Fixed problems with iteration which affected some workbooks. (1.2.0.15)
  • Fixed setting inside vertical and inside horizontal borders to work correctly. (1.2.0.17)
  • Fixed a problem which caused large worksheets to be generated when copying an entire worksheet where the source and destination have different default row heights. (1.2.0.19)
  • Removed a call to an overloaded System.Array.Copy method which does not exist in .NET 1.0; Note that SpreadsheetGear for .NET still does not officially support .NET 1.0. (1.2.0.21)
  • Added support to allow reading of invalid Excel workbooks written by some 3rd party software. (1.2.0.23)
  • Fixed problem copying some drawing objects with ISheet.CopyBefore(ISheet) and ISheet.CopyAfter(ISheet). (1.2.0.23)
  • Fixed to delete controls which reference macros when reading. (1.2.0.23)
SpreadsheetGear for .NET 1.1
December 26, 2005 - SpreadsheetGear for .NET 1.1 enhancements include the ability to easily and efficiently insert a DataTable into an Excel workbook and automatically fixup all formulas, formats and borders, as well as the ability to insert, delete and clear rows, columns and cells.

New Features
  • Easily and efficiently copy or insert a DataTable into an Excel workbook with IRange.CopyFromDataTable(System.Data.DataTable dataTable, SpreadsheetGear.Data.SetDataFlags flags).
  • Insert rows, columns and cells with IRange.Insert and IRange.Insert(InsertShiftDirection).
  • Delete rows, columns and cells with IRange.Delete and IRange.Delete(DeleteShiftDirection).
  • Clear rows, columns and cells with IRange.Clear, IRange.ClearContents and IRange.ClearFormats.
  • Determine whether an IRange represents entire rows or entire columns with IRange.IsEntireRows and IRange.IsEntireColumns.
Issues Addressed
  • Fixed parsing of formulas with strings containing embedded quotes to work correctly.
  • Fixed setting of IBorder.ColorIndex and IBorders.ColorIndex to ColorIndex.Automatic and ColorIndex.None to work correctly.
  • Made setting of borders work more like Excel. For example, setting just the color now sets a default line style and setting just a line style now sets the color index to ColorIndex.Automatic.
  • Fixed IInterior properties to work more like Excel.
  • Optimized setting IRange.NumberFormat of an entire row or entire column and fixed to no longer grow the used range innapropriately.
  • Fixed setting of row and column outlines and sizes which threw an exception for certain rare cases.
SpreadsheetGear for .NET 1.0.9
November 7, 2005 - SpreadsheetGear for .NET 1.0.9 adds the ability to copy and consolidate rows, columns and ranges as well as fixing a few issues.

New Features
  • IRange.Copy methods.
  • Setting cell values with IRange.Value and IRange.Formula now sets the number format of the destination cell as Excel does.
  • Tested with Visual Studio 2005 RTM.
  • Factory.GetWorkbookSet( System.Globalization.CultureInfo ) method to create a workbook set with a specified culture. (1.0.9.7)
New Features Supported By IRange.Copy Methods
  • Copy rows, columns and cells.
  • Control what is copied with the pasteType argument which supports all, all except borders, values, values and number formats, formulas, formulas and number formats, column widths or just formats.
  • Consolidate cells by specifying PasteOperation.Add, PasteOperation.Subtract, PasteOperation.Multiply or PasteOperation.Divide.
  • Transpose cells by passing true for the transpose argument.
  • Skip blank cells by passing true for the skipBlanks argument.
Issues Addressed
  • Fixed various IRange property setters and methods to correctly check for partial merged cells and partial array formulas.
  • Fixed setting of palette entries to work correctly.
  • Fixed setting IRange.Formula to correctly parse dates.
  • Fixed issue with the INDIRECT(address) worksheet function which resulted in cells containing the INDIRECT function sometimes not being calculated.
  • Fixed issue with OFFSET(range, rows, cols...) which resulted in cells sometimes not being calculated if the starting range was limited to cells in the same column as the cell containing the function.
  • Fixed issues with setting and writing row heights and row hidden status.
  • Fixed rounding of certain numbers to work more like Excel. (1.0.9.7)
  • Fixed copying of columns to copy column hidden and outline settings. (1.0.9.7)
  • Fixed parsing of functions with spaces before a function name and the function's closing parenthesis; "= PI( )" was getting changed to "=PI( )". (1.0.9.7)
  • Fixed SUMIF() and COUNTIF() worksheet functions to convert date criteria to a number as Excel does. SUMIF(criteriaRange, "<11/10/2005", dataRange) now treats 11/10/2005 as a date serial number rather than text.
  • Fixed problem with SUMPRODUCT(...) which caused it to sometimes not calculate it's arguments as arrays.
SpreadsheetGear for .NET 1.0.7
October 19, 2005 - SpreadsheetGear for .NET 1.0.7 adds a few new features and addresses some issues in SpreadsheetGear for .NET 1.0.4.

New Features
  • Significantly improved performance.
  • Added support for getting and setting manual page breaks with the SpreadsheetGear.IRange.PageBreak property as well as the SpreadsheetGear.IHPageBreaks, SpreadsheetGear.IHPageBreak, SpreadsheetGear.IVPageBreaks and SpreadsheetGear.IVPageBreak interfaces.
  • Added IRange.GetOffset(int rowOffset, int columnOffset) which returns an identical IRange except that it is offset by rowOffset rows and columnOffset columns.
  • Added a new indexer to SpreadsheetGear.IRange which creates an instance of IRange from the specified starting and ending row and column offsets.
  • Added the SpreadsheetGear.IRange.WrapText and SpreadsheetGear.IRange.WrapTextDefined properties.
  • Added the SpreadsheetGear.IRange.Orientation and SpreadsheetGear.IRange.OrientationDefined properties, as well as the SpreadsheetGear.Orientation class with related constants.
Issues Addressed
  • Fixed formatting of entire rows, entire columns and entire worksheets to work correctly.
  • Fixed setting SpreadsheetGear.IRange.Value and SpreadsheetGear.IRange.Formula to work correctly when a cell is formatted as text (such as a NumberFormat of "@"). Setting a cell formatted as text always puts the text in the cell without trying to convert it to a formula, number, date, time or logical value.
  • Fixed parsing of formulas which contain references to worksheets with a name which does not start with a letter or underscore (such as "=2005!A1"). This already worked correctly if the worksheet name was surrounded by single quotes (such as "='2005'!A1"), but Excel, as well as SpreadsheetGear for .NET 1.0.7, allows these to be entered without the single quotes.
  • Fixed IRange.MergeCells and IRange.MergeCellsDefined to return the correct values when reading a file written by Excel.
  • Fixed to allow custom function references to external XLA functions so that a custom function named "MYADD()" will be used for an XLA custom function reference such as "=Workbook.xla!MYAdd()".
  • Fixed so that newly created worksheets start looking for a name to use at "SheetX" instead of "Sheet1" where X is the new number of worksheets in the workbook. This was done to provide behavior which is consistent with Excel.
  • Fixed adding a formula with a new external workbook name reference (such as "=Workbook!AName") to work.
  • Fixed formatting of dates and the TEXT(...) worksheet function to work correctly with the 1904 date system.
  • Fixed references with URL's such as "=http://abc.com/Worksheet.xls" to unparse correctly.
  • Fixed the SMALL(...) and LARGE(...) worksheet functions to truncate k rather than rounding it.
SpreadsheetGear 2009
Now Available
NEW!  93 Analysis Toolpak functions, CSV and text files, auto fill, goal seeking, data series, bubble charts, chart axis titles, gradients, rotated text and more.  Download the Licensed version or the FREE Evaluation Now.
Microsoft Chooses
SpreadsheetGear for .NET
"After carefully evaluating SpreadsheetGear, Excel Services, and other 3rd party options, we ultimately chose SpreadsheetGear for .NET because it is the best fit for MSN Money."

Chris Donohue
Program Manager
MSN Money
SpreadsheetGear 2009
In a League by Itself
"SpreadsheetGear 2009 is Fantastic! I hate to think of NOT having SpreadsheetGear for even one day. These new capabilities just propelled this control way-way past any competition, of which you have none IMHO.

As a programmer, I respect the amount of work, etc., that goes into a product that works well and as advertised. We have been using SpreadsheetGear since 2006 and it has saved us countless hours, headaches and $$$. We have had no recurring crashes since we removed all Office COM objects and replaced them with SpreadsheetGear. It seems that everything runs a lot smoother and much faster.

SpreadsheetGear is in a league all by itself."

Greg Newman
Senior Software Engineer
WSFS Cash Connect
Over 100 Times Faster
Than Other Controls
"We just wanted you to know how thrilled we are by the performance we are seeing with SpreadsheetGear for .NET. A 6,000 KB Excel workbook is loading into the WorkbookView control in less than a second. This is over 100 times faster than other controls we’ve tested. That difference makes it possible for us to develop and release a viable product with the Microsoft .NET Framework."

Amy Tate
Chief .NET Architect
Applied OLAP, Inc.
Huntsville, Alabama
Spreadsheet Component
Industry Veterans
"Our key developers have over fifty years of combined experience developing high performance commercially available spreadsheet technology which is used by most of the Fortune 500."

Joe Erickson
Founder and CEO
SpreadsheetGear LLC
SpreadsheetGear Joins
Microsoft VSIP Program
August 23, 2005 - "We welcome SpreadsheetGear to the Microsoft Visual Studio Industry Partner Program. The improved ability to create, modify, calculate, read and write Microsoft Excel (versions 97 and higher) workbooks will allow our mutual customers to create a broad range of solutions in a rich and familiar form."

Nick Abbott
Group Manager
.NET Developer Product Marketing Group
Microsoft Corp.

Microsoft VSIP Program
Reduced Time From
20 Minutes to 4 Seconds
"We integrated SpreadsheetGear for .NET with an existing application with about two days work and it reduced the time it takes to generate a critical daily report from 20 minutes to 4 seconds. Thanks for making my team look like miracle workers!"

Luke Melia, Software
Development Manager
Oxygen Media, New York
Fantastic -- From Excel
To ASP.NET Dashboard
in a Single Afternoon
"Fantastic evaluation -- I started with a customer’s Excel workbook with a dashboard containing variable cells and a chart. Using SpreadsheetGear, and your Dashboard from 1693 Analytics sample as a template, I created my own ASP.NET page to display our client’s dashboard, and update based on the selection of parameters which get plugged into the variable cells. And I got this working in a single afternoon."

Andy Hofer
Directory of Development
NST Systems, Inc.
Stamford, CT
You Have an
Excellent Product
"You have an excellent product. I've finished my testing and was able to rewrite a program using VB.NET and your control. I wrote the previous version 4 years ago using VB6 which employed the Excel COM object. The old program generated about 2100 excel sheets in 8 hours. With your control it now takes 7 minutes!

I also wrote a web form in ASP.NET VB using your control. This was also previously a VB6 / Excel app. This one went from 36 minutes to less than a minute.

I'm having no trouble getting this purchase approved!"

Mark Hitchcock
Manager of Information Technology
Administrative Concepts, Inc.
Best Component Purchase
for Many Years
“SpreadsheetGear for .NET provides a platform for spreadsheet web extension second to none. We were able to implement our custom formulas using the SpreadsheetGear engine with ease and these interact with the Excel functions seamlessly. The performance is superb and in many cases faster than in Excel which has been a pleasant surprise. The expertise of the development team is very apparent and we look forward to the new product enhancements coming down the line. From a return on investment perspective this has been our best component purchase for many years."

Mark Scanlon
Managing Director
XLCubed Ltd
Your Quick Responses...
You Continue to Impress
"Your quick responses to queries are one of the original reasons why we opted for your product, and you continue to impress us with the speed at which questions and issues are dealt with."

Justin Blackwell
Volume Design Ltd.
Berkshire, United Kingdom
SpreadsheetGear for .NET Worked as Described
"After trying every Microsoft Excel compatible spreadsheet solution for the .NET Framework I could find, SpreadsheetGear for .NET is the only one that actually worked as described."

Michael Garnett
Interpublic Group
New York, NY
SpreadsheetGear for .NET
Robust & Comprehensive
We really love SpreadsheetGear for .NET. The comprehensive and robust set of worksheet functions ensures that our customers are able to fully leverage their Excel knowledge in our product.

Andreas Lipphardt
XLCubed Ltd
Hessen Germany
My Boss Thinks
I'm a Genius
"Just wanted to give you a little good feedback on your product. I'm a programmer for a small company in Norway and we needed to create an Excel report for one of our customers. So I purchased a license for your wonderful product and it took me about 10 minutes to get the report from a DataTable into a finished Excel document!

My boss thinks I'm a genius, but hey; the credit should go to your product. At least half of it.

Cheers!"

Hans Olav Stjernholm
Chief Developer
ZapDance as, Norway
Vision and Ability for Advanced Spreadsheets
September 20, 2005 - "With SpreadsheetGear, we finally have a company that understands our requirements in regards to supporting the Microsoft Excel file format in the Microsoft .NET Framework. SpreadsheetGear has the vision and the ability to provide the advanced spreadsheet functionality our customers expect in our products."

Tim Tow
President
Applied OLAP, Inc.
Former Microsoft Excel MVP
I'm Impressed With the
Ease of Use and Speed
"I'm impressed with the ease of use and speed of SpreadsheetGear for .NET in rendering large workbooks from a web page. Congrats for your work!"

José M. Marcenaro
Tercer Planeta
Buenos Aires, Argentina
Fantastically Powerful
Very Easy To Use
"SpreadsheetGear for .NET is a fantastically powerful spreadsheet component which is very easy to use and expand. We delivered our mandatory customer requirements well before time so we had plenty of time to implement the nice-to-have requirements nobody ever manages to deliver."

Simon Black
Software Architect
Nokia
Every Day that Goes By
I Am More Amazed
I must say that everyday that goes by I am more amazed with your component. It’s easy to use but still powerful. No more problems using Excel workbooks in the .NET environment.

You have spared me about 3 or 4 months of work with your excellent tool. I also must say that I’m using many other components from other companies and no one has proven to be as fast and effective as you in solving a support request.

Pedro Horta
IT Analyst / Programmer
OmnicomMediaGroup
Portugal
ASP.NET and
SpreadsheetGear
A Match Made in Heaven
"ASP.NET and Microsoft Excel is a dangerous combination. ASP.NET and SpreadsheetGear is a match made in heaven. When you need your web or Windows app to interact with Excel files with lightening speed and no COM crashes, SpreadsheetGear for .NET is what you use. This product truly separates the men from the boys in the spreadsheet control marketplace."

Robbe Morris
Microsoft MVP - C#
Co-founder of EggHeadCafe.com and former Gartner Sr. Software Engineer
SpreadsheetGear for .NET
A Pleasure to Work With
"SpreadsheetGear for .NET is truly a pleasure to work with. I was up and running within the first day. It is the best spreadsheet generator out on the market. Performance, Ease of Use, and Full Control of the generation process sold me. I no longer have to be concerned with memory leaks, hung processes, COM Interop and slow performance. Our users demand cosmetically appealing reports without additional work. I can build templates at will, with complete control to freeze panes, page setup, cell formats, etc., etc. The old days of pre-building templates are gone. I cannot think of anything this product cannot do."

Todd Dickard
TA Billing Systems Mgr.
TravelCenters of America
Performance, Flexibility
Priceless Support
"We started to use SpreadsheetGear for .NET almost two years ago when the performance of other controls was becoming problematic. We needed a control that could handle large workbooks with complex formulas to be able to apply Monte Carlo simulation to financial statements. Since that time SpreadsheetGear for .NET has become our tool of choice not only for the performance but also for the flexibility. But most of all, the technical support we receive from SpreadsheetGear LLC is priceless; it has always been fast and accurate with the vision to arrive at the desired solution."

Frédérick Faucher
Analyste Financier
Solutions Modex Inc.
Montréal, Canada
First Rate Support
Superior Control
"Your support is first rate. We always get an answer within a few minutes of any request or question. This support, combined with the exceptional speed and ease of use of your superior control enables me to create complex spreadsheet solutions that work in a few minutes instead of days. Keep up the excellent work!"

Greg Newman
WSFS Bank
Newark DE
Excellent Product
And Service
"Thank you for all your help during the trial period.

Your excellent product and service is what convinced us to buy this component."

Etienne Demers
OceanLogics, Canada
The Daily Grind Reviews SpreadsheetGear for .NET
September 22, 2005 - "The license allows royalty free deployment, making this a cost effective alternative to Excel as well as a technically superior one for generating worksheets and performing heavy-duty calculations from your .NET applications."

Mike Gunderloy
Lead developer for Larkware
Author of numerous books and articles on programming.
Hands Down the Most
Intuitive and Easy to Use
"Thanks again for your prompt response, and I would just like to say that this is by far the best library that I have worked with. It is hands down the most intuitive and easy to use API that I have used to work with Excel files. Its performance is hard to beat as well.”

Levi Wilson
Software Developer
Press Ganey Associates
South Bend, Indiana
Unmatched Speed
and Ease of Coding
Make it a Winner
SpreadsheetGear is a great product. The speed is unmatched and the ease of coding makes it a winner.

Steve Cruickshank
Redwood Software
Creating Excel Reports
Has Never Been Easier
"I really am happy with SpreadsheetGear for .NET. It works fantastic, very smooth to handle. Creating Excel Reports has never been easier for me!"

Wolfgang Kamir
Softwaretailor
Baden, Lower Austria
SpreadsheetGear - The
Best I Have Encountered
"The sample code you provided has worked very well indeed. Many thanks for your help. As a developer of bespoke software I can honestly say that of all the components my company has ever used, SpreadsheetGear is the best that I have encountered."

Peter Rose, Director
TEKenable, Ltd.
Dublin, Ireland
SpreadsheetGear for .NET
So Much Easier
"I have one big problem with Spreadsheetgear for .NET, my billable hours are going to go down because your product is so much easier to use than a web grid. Yikes!

I sure wish I had found your product a couple of years ago. And converting my webgrid code over to SpreadsheetGear for .NET is going very quickly because all of the logic is already coded and I just have to write to the spreadsheet.

I really like not having to insert columns and rows when I need them. I really like your product so far."

Bruce Hemmerich
Manager - Business and Technical Solutions
KeyChainData, LLC
Great Piece of Software
Solves Real Problems
"SpreadsheetGear for .NET is a great piece of software that has given me faith that there are still developers who write great code to solve real problems and are serious about supporting it."

Deane Barker
Blend Interactive
Sioux Falls, South Dakota
Copyright © 2003-2009 SpreadsheetGear LLC. All Rights Reserved.
SpreadsheetGear® is a registered trademark and Spreadsheet Gear is a trademark of SpreadsheetGear LLC.
Microsoft, Microsoft Excel, Visual Studio and the Visual Studio logo are trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries.