SpreadsheetGear 2008 is the most significant upgrade since SpreadsheetGear for .NET Version 1 was released in 2005. There are some breaking changes, primarily due to changes in Excel 2007:
- The increased number of rows and columns makes some previously valid defined names look like cell references. When loading workbooks with defined names which look like a cell reference, an underscore is inserted at the beginning of the defined name. So, a previously valid defined name such as "Fox1" becomes "_Fox1" upon reading a workbook. If the defined name "_Fox1" already exists, additional underscores will be inserted until a unique name is found.
- SpreadsheetGear for .NET 2007 supported reading and writing charts by reading and storing the records as BLOBs with extended support for a few crucial elements such as the formulas in a series as well as references to the font table and number format table. SpreadsheetGear 2008 has an entirely new charting engine, and therefore there are likely to be some cases where SpreadsheetGear 2008 does not maintain some chart options exactly the same as SpreadsheetGear for .NET 2007.
- Default US English font is now Calibri 11 instead of Arial 10.
- Changed IName.RefersToRange to take the current active cell into account which affects the returned range if the defined name uses relative references. This now works like IName.RefersTo and IName.RefersToR1C1.
- Changed public APIs which returned or accepted instances of System.Drawing.Color to use the new SpreadsheetGear.Drawing.Color value type. This change will be transparent in almost every use case because SpreadsheetGear.Drawing.Color provides implicit conversions to and from System.Drawing.Color. This change was required to enable SpreadsheetGear developers to write code against the SpreadsheetGear core engine API which can be shared between Web Forms, Windows Forms and WPF projects.
- IFormatCondition.Formula1 and IFormatCondition.Formula2 now return a leading "=" for simple conditions with just numbers or text, such as "=1" instead of "1" for the number 1.
- The default page margins have changed. Top and bottom margins have gone from 1 inch to 0.75 inch. left and right margins have gone from 0.75 inches to 0.7 inches, and header and footer margins have gone from 0.5 inches to 0.3 inches.
- IRange.Count is deprecated and now throws an exception if the returned value would exceed Int32.MaxValue (IWorksheet.Cells.Count would need to return 2^34). Use IRange.CellCount, IRange.RowCount or IRange.ColumnCount.
- IShape.Name can now be set to the same name as another shape or to "".
- IShape.ID behaves differently for Excel 97-2003 workbooks as compared to Excel 2007 Open XML workbooks. Use IShape.Name to name a shape if you must be able to identify it reliably.
- Removed IFont.Background property. This property never had any effect and led to confusion by developers.
- Removed redundant IFont.ColorIndexDefined property (use IFont.ColorDefined).
- Removed redundant IInterior.ColorIndexDefined property (use IInterior.ColorDefined).
- Removed redundant IInterior.PatternColorIndexDefined property (use IInterior.PatternColorDefined).