diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTableRow.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTableRow.cs
index 43db4ef..1e7b0f2 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTableRow.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Tables/XLTableRow.cs
@@ -92,12 +92,12 @@
return RowBelow(step);
}
- public XLTableRow RowBelow()
+ public new XLTableRow RowBelow()
{
return RowBelow(1);
}
- public XLTableRow RowBelow(Int32 step)
+ public new XLTableRow RowBelow(Int32 step)
{
return RowShift(step);
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs
index a9af618..4b52bb9 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs
@@ -4,6 +4,8 @@
namespace ClosedXML.Excel
{
+ using System.Linq;
+
public enum XLCalculateMode
{
Auto,
@@ -21,77 +23,94 @@
public enum XLCellSetValueBehavior
{
- /// Analyze input string and convert value. For avoid analyzing use escape symbol '
+ ///
+ /// Analyze input string and convert value. For avoid analyzing use escape symbol '
+ ///
Smart = 0,
- /// Direct set value. If value has unsupported type - value will be stored as string returned by
+
+ ///
+ /// Direct set value. If value has unsupported type - value will be stored as string returned by
+ ///
Simple = 1,
}
+
public partial class XLWorkbook
{
#region Static
+
private static IXLStyle _defaultStyle;
+
public static IXLStyle DefaultStyle
{
get
{
- if (_defaultStyle == null)
- {
- _defaultStyle = new XLStyle(null, null)
- {
- Font = new XLFont(null, null)
- {
- Bold = false,
- Italic = false,
- Underline = XLFontUnderlineValues.None,
- Strikethrough = false,
- VerticalAlignment = XLFontVerticalTextAlignmentValues.Baseline,
- FontSize = 11,
- FontColor = XLColor.FromArgb(0, 0, 0),
- FontName = "Calibri",
- FontFamilyNumbering = XLFontFamilyNumberingValues.Swiss
- },
- Fill = new XLFill(null)
- {
- BackgroundColor = XLColor.FromIndex(64),
- PatternType = XLFillPatternValues.None,
- PatternColor = XLColor.FromIndex(64)
- },
- Border = new XLBorder(null, null)
- {
- BottomBorder = XLBorderStyleValues.None,
- DiagonalBorder = XLBorderStyleValues.None,
- DiagonalDown = false,
- DiagonalUp = false,
- LeftBorder = XLBorderStyleValues.None,
- RightBorder = XLBorderStyleValues.None,
- TopBorder = XLBorderStyleValues.None,
- BottomBorderColor = XLColor.Black,
- DiagonalBorderColor = XLColor.Black,
- LeftBorderColor = XLColor.Black,
- RightBorderColor = XLColor.Black,
- TopBorderColor = XLColor.Black
- },
- NumberFormat = new XLNumberFormat(null, null) {NumberFormatId = 0},
- Alignment = new XLAlignment(null)
- {
- Indent = 0,
- Horizontal = XLAlignmentHorizontalValues.General,
- JustifyLastLine = false,
- ReadingOrder = XLAlignmentReadingOrderValues.ContextDependent,
- RelativeIndent = 0,
- ShrinkToFit = false,
- TextRotation = 0,
- Vertical = XLAlignmentVerticalValues.Bottom,
- WrapText = false
- },
- Protection = new XLProtection(null)
- {
- Locked = true,
- Hidden = false
- }
- };
- }
- return _defaultStyle;
+ return _defaultStyle ?? (_defaultStyle = new XLStyle(null)
+ {
+ Font = new XLFont(null, null)
+ {
+ Bold = false,
+ Italic = false,
+ Underline = XLFontUnderlineValues.None,
+ Strikethrough = false,
+ VerticalAlignment =
+ XLFontVerticalTextAlignmentValues.
+ Baseline,
+ FontSize = 11,
+ FontColor = XLColor.FromArgb(0, 0, 0),
+ FontName = "Calibri",
+ FontFamilyNumbering =
+ XLFontFamilyNumberingValues.Swiss
+ },
+ Fill = new XLFill(null)
+ {
+ BackgroundColor = XLColor.FromIndex(64),
+ PatternType = XLFillPatternValues.None,
+ PatternColor = XLColor.FromIndex(64)
+ },
+ Border = new XLBorder(null, null)
+ {
+ BottomBorder =
+ XLBorderStyleValues.None,
+ DiagonalBorder =
+ XLBorderStyleValues.None,
+ DiagonalDown = false,
+ DiagonalUp = false,
+ LeftBorder = XLBorderStyleValues.None,
+ RightBorder = XLBorderStyleValues.None,
+ TopBorder = XLBorderStyleValues.None,
+ BottomBorderColor = XLColor.Black,
+ DiagonalBorderColor = XLColor.Black,
+ LeftBorderColor = XLColor.Black,
+ RightBorderColor = XLColor.Black,
+ TopBorderColor = XLColor.Black
+ },
+ NumberFormat =
+ new XLNumberFormat(null, null) {NumberFormatId = 0},
+ Alignment = new XLAlignment(null)
+ {
+ Indent = 0,
+ Horizontal =
+ XLAlignmentHorizontalValues.
+ General,
+ JustifyLastLine = false,
+ ReadingOrder =
+ XLAlignmentReadingOrderValues.
+ ContextDependent,
+ RelativeIndent = 0,
+ ShrinkToFit = false,
+ TextRotation = 0,
+ Vertical =
+ XLAlignmentVerticalValues.
+ Bottom,
+ WrapText = false
+ },
+ Protection = new XLProtection(null)
+ {
+ Locked = true,
+ Hidden = false
+ }
+ });
}
}
@@ -104,22 +123,22 @@
{
var defaultPageOptions = new XLPageSetup(null, null)
{
- PageOrientation = XLPageOrientation.Default,
- Scale = 100,
- PaperSize = XLPaperSize.LetterPaper,
- Margins = new XLMargins
- {
- Top = 0.75,
- Bottom = 0.5,
- Left = 0.75,
- Right = 0.75,
- Header = 0.5,
- Footer = 0.75
- },
- ScaleHFWithDocument = true,
- AlignHFWithMargins = true,
- PrintErrorValue = XLPrintErrorValues.Displayed,
- ShowComments = XLShowCommentsValues.None
+ PageOrientation = XLPageOrientation.Default,
+ Scale = 100,
+ PaperSize = XLPaperSize.LetterPaper,
+ Margins = new XLMargins
+ {
+ Top = 0.75,
+ Bottom = 0.5,
+ Left = 0.75,
+ Right = 0.75,
+ Header = 0.5,
+ Footer = 0.75
+ },
+ ScaleHFWithDocument = true,
+ AlignHFWithMargins = true,
+ PrintErrorValue = XLPrintErrorValues.Displayed,
+ ShowComments = XLShowCommentsValues.None
};
return defaultPageOptions;
}
@@ -131,32 +150,165 @@
{
return new XLOutline(null)
{
- SummaryHLocation = XLOutlineSummaryHLocation.Right,
- SummaryVLocation = XLOutlineSummaryVLocation.Bottom
+ SummaryHLocation = XLOutlineSummaryHLocation.Right,
+ SummaryVLocation = XLOutlineSummaryVLocation.Bottom
};
}
}
-///
- /// Behavior for
+
+ ///
+ /// Behavior for
///
public static XLCellSetValueBehavior CellSetValueBehavior { get; set; }
+
#endregion
+
+ private readonly Dictionary _unsupportedSheets =
+ new Dictionary();
+
+ #region Nested Type: XLLoadSource
+
+ private enum XLLoadSource
+ {
+ New,
+ File,
+ Stream
+ };
+
+ #endregion
+
+ internal XLWorksheets WorksheetsInternal { get; private set; }
+
+ ///
+ /// Gets an object to manipulate the worksheets.
+ ///
+ public IXLWorksheets Worksheets
+ {
+ get { return WorksheetsInternal; }
+ }
+
+ ///
+ /// Gets an object to manipulate this workbook's named ranges.
+ ///
+ public IXLNamedRanges NamedRanges { get; private set; }
+
+ ///
+ /// Gets an object to manipulate this workbook's theme.
+ ///
+ public IXLTheme Theme { get; private set; }
+
+ ///
+ /// Gets or sets the default style for the workbook.
+ /// All new worksheets will use this style.
+ ///
+ public IXLStyle Style { get; set; }
+
+ ///
+ /// Gets or sets the default row height for the workbook.
+ /// All new worksheets will use this row height.
+ ///
+ public Double RowHeight { get; set; }
+
+ ///
+ /// Gets or sets the default column width for the workbook.
+ /// All new worksheets will use this column width.
+ ///
+ public Double ColumnWidth { get; set; }
+
+ ///
+ /// Gets or sets the default page options for the workbook.
+ /// All new worksheets will use these page options.
+ ///
+ public IXLPageSetup PageOptions { get; set; }
+
+ ///
+ /// Gets or sets the default outline options for the workbook.
+ /// All new worksheets will use these outline options.
+ ///
+ public IXLOutline Outline { get; set; }
+
+ ///
+ /// Gets or sets the workbook's properties.
+ ///
+ public XLWorkbookProperties Properties { get; set; }
+
+ ///
+ /// Gets or sets the workbook's calculation mode.
+ ///
+ public XLCalculateMode CalculateMode { get; set; }
+
+ ///
+ /// Gets or sets the workbook's reference style.
+ ///
+ public XLReferenceStyle ReferenceStyle { get; set; }
+
+ public IXLCustomProperties CustomProperties { get; private set; }
+
+ public Boolean ShowFormulas { get; set; }
+ public Boolean ShowGridLines { get; set; }
+ public Boolean ShowOutlineSymbols { get; set; }
+ public Boolean ShowRowColHeaders { get; set; }
+ public Boolean ShowRuler { get; set; }
+ public Boolean ShowWhiteSpace { get; set; }
+ public Boolean ShowZeros { get; set; }
+ public Boolean RightToLeft { get; set; }
+
+ public Boolean DefaultShowFormulas
+ {
+ get { return false; }
+ }
+
+ public Boolean DefaultShowGridLines
+ {
+ get { return true; }
+ }
+
+ public Boolean DefaultShowOutlineSymbols
+ {
+ get { return true; }
+ }
+
+ public Boolean DefaultShowRowColHeaders
+ {
+ get { return true; }
+ }
+
+ public Boolean DefaultShowRuler
+ {
+ get { return true; }
+ }
+
+ public Boolean DefaultShowWhiteSpace
+ {
+ get { return true; }
+ }
+
+ public Boolean DefaultShowZeros
+ {
+ get { return true; }
+ }
+
+ public Boolean DefaultRightToLeft
+ {
+ get { return false; }
+ }
+
private void InitializeTheme()
{
Theme = new XLTheme
{
- Text1 = XLColor.FromHtml("#FF000000"),
- Background1 = XLColor.FromHtml("#FFFFFFFF"),
- Text2 = XLColor.FromHtml("#FF1F497D"),
- Background2 = XLColor.FromHtml("#FFEEECE1"),
- Accent1 = XLColor.FromHtml("#FF4F81BD"),
- Accent2 = XLColor.FromHtml("#FFC0504D"),
- Accent3 = XLColor.FromHtml("#FF9BBB59"),
- Accent4 = XLColor.FromHtml("#FF8064A2"),
- Accent5 = XLColor.FromHtml("#FF4BACC6"),
- Accent6 = XLColor.FromHtml("#FFF79646"),
- Hyperlink = XLColor.FromHtml("#FF0000FF"),
- FollowedHyperlink = XLColor.FromHtml("#FF800080")
+ Text1 = XLColor.FromHtml("#FF000000"),
+ Background1 = XLColor.FromHtml("#FFFFFFFF"),
+ Text2 = XLColor.FromHtml("#FF1F497D"),
+ Background2 = XLColor.FromHtml("#FFEEECE1"),
+ Accent1 = XLColor.FromHtml("#FF4F81BD"),
+ Accent2 = XLColor.FromHtml("#FFC0504D"),
+ Accent3 = XLColor.FromHtml("#FF9BBB59"),
+ Accent4 = XLColor.FromHtml("#FF8064A2"),
+ Accent5 = XLColor.FromHtml("#FF4BACC6"),
+ Accent6 = XLColor.FromHtml("#FFF79646"),
+ Hyperlink = XLColor.FromHtml("#FF0000FF"),
+ FollowedHyperlink = XLColor.FromHtml("#FF800080")
};
}
@@ -188,14 +340,157 @@
throw new ArgumentException("Invalid theme color");
}
}
- #region Fields
- private readonly XLLoadSource m_loadSource = XLLoadSource.New;
- private readonly String m_originalFile;
- private readonly Stream m_originalStream;
- #endregion
- #region Constructor
+
+ public IXLNamedRange NamedRange(String rangeName)
+ {
+ return NamedRanges.NamedRange(rangeName);
+ }
+
///
- /// Creates a new Excel workbook.
+ /// Saves the current workbook.
+ ///
+ public void Save()
+ {
+ if (_loadSource == XLLoadSource.New)
+ throw new Exception("This is a new file, please use one of the SaveAs methods.");
+
+ if (_loadSource == XLLoadSource.Stream)
+ CreatePackage(_originalStream, false);
+ else
+ CreatePackage(_originalFile);
+ }
+
+ ///
+ /// Saves the current workbook to a file.
+ ///
+ public void SaveAs(String file)
+ {
+ PathHelper.CreateDirectory(Path.GetDirectoryName(file));
+ if (_loadSource == XLLoadSource.New)
+ {
+ if (File.Exists(file))
+ File.Delete(file);
+
+ CreatePackage(file);
+ }
+ else if (_loadSource == XLLoadSource.File)
+ {
+ if (String.Compare(_originalFile.Trim(), file.Trim(), true) != 0)
+ File.Copy(_originalFile, file, true);
+
+ CreatePackage(file);
+ }
+ else if (_loadSource == XLLoadSource.Stream)
+ {
+ _originalStream.Position = 0;
+
+ using (var fileStream = File.Create(file))
+ {
+ CopyStream(_originalStream, fileStream);
+ //fileStream.Position = 0;
+ CreatePackage(fileStream, false);
+ fileStream.Close();
+ }
+ }
+ }
+
+ ///
+ /// Saves the current workbook to a stream.
+ ///
+ public void SaveAs(Stream stream)
+ {
+ if (_loadSource == XLLoadSource.New)
+ CreatePackage(stream, true);
+ else if (_loadSource == XLLoadSource.File)
+ {
+ using (var fileStream = new FileStream(_originalFile, FileMode.Open))
+ {
+ CopyStream(fileStream, stream);
+ fileStream.Close();
+ }
+ CreatePackage(stream, false);
+ }
+ else if (_loadSource == XLLoadSource.Stream)
+ {
+ _originalStream.Position = 0;
+ if (_originalStream != stream)
+ CopyStream(_originalStream, stream);
+
+ CreatePackage(stream, false);
+ }
+ }
+
+ internal void CopyStream(Stream input, Stream output)
+ {
+ var buffer = new byte[8 * 1024];
+ int len;
+ while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
+ output.Write(buffer, 0, len);
+ }
+
+ public IXLWorksheet Worksheet(String name)
+ {
+ return WorksheetsInternal.Worksheet(name);
+ }
+
+ public IXLWorksheet Worksheet(Int32 position)
+ {
+ return WorksheetsInternal.Worksheet(position);
+ }
+
+ public IXLCustomProperty CustomProperty(String name)
+ {
+ return CustomProperties.CustomProperty(name);
+ }
+
+ public IXLCells FindCells(Func predicate)
+ {
+ var cells = new XLCells(false, false);
+ foreach (XLWorksheet ws in WorksheetsInternal)
+ {
+ foreach (XLCell cell in ws.CellsUsed(true))
+ {
+ if (predicate(cell))
+ cells.Add(cell);
+ }
+ }
+ return cells;
+ }
+
+ public IXLRows FindRows(Func predicate)
+ {
+ var rows = new XLRows(null);
+ foreach (XLWorksheet ws in WorksheetsInternal)
+ {
+ foreach (IXLRow row in ws.Rows().Where(predicate))
+ rows.Add(row as XLRow);
+ }
+ return rows;
+ }
+
+ public IXLColumns FindColumns(Func predicate)
+ {
+ var columns = new XLColumns(null);
+ foreach (XLWorksheet ws in WorksheetsInternal)
+ {
+ foreach (IXLColumn column in ws.Columns().Where(predicate))
+ columns.Add(column as XLColumn);
+ }
+ return columns;
+ }
+
+ #region Fields
+
+ private readonly XLLoadSource _loadSource = XLLoadSource.New;
+ private readonly String _originalFile;
+ private readonly Stream _originalStream;
+
+ #endregion
+
+ #region Constructor
+
+ ///
+ /// Creates a new Excel workbook.
///
public XLWorkbook()
{
@@ -217,312 +512,48 @@
ShowRuler = DefaultShowRuler;
ShowWhiteSpace = DefaultShowWhiteSpace;
ShowZeros = DefaultShowZeros;
+ RightToLeft = DefaultRightToLeft;
WorksheetsInternal = new XLWorksheets(this);
NamedRanges = new XLNamedRanges(this);
CustomProperties = new XLCustomProperties(this);
}
+
///
- /// Opens an existing workbook from a file.
+ /// Opens an existing workbook from a file.
///
/// The file to open.
public XLWorkbook(String file)
- : this()
+ : this()
{
- m_loadSource = XLLoadSource.File;
- m_originalFile = file;
+ _loadSource = XLLoadSource.File;
+ _originalFile = file;
Load(file);
}
///
- /// Opens an existing workbook from a stream.
+ /// Opens an existing workbook from a stream.
///
/// The stream to open.
public XLWorkbook(Stream stream)
- : this()
+ : this()
{
- m_loadSource = XLLoadSource.Stream;
- m_originalStream = stream;
+ _loadSource = XLLoadSource.Stream;
+ _originalStream = stream;
Load(stream);
}
+
#endregion
- #region IXLWorkbook Members
- internal XLWorksheets WorksheetsInternal { get; private set; }
- ///
- /// Gets an object to manipulate the worksheets.
- ///
- public IXLWorksheets Worksheets { get { return WorksheetsInternal; } }
- ///
- /// Gets an object to manipulate this workbook's named ranges.
- ///
- public IXLNamedRanges NamedRanges { get; private set; }
+ #region Nested type: UnsupportedSheet
- public IXLNamedRange NamedRange(String rangeName)
+ private sealed class UnsupportedSheet
{
- return NamedRanges.NamedRange(rangeName);
- }
-
- ///
- /// Gets the file name of the workbook.
- ///
- public String Name { get; private set; }
-
- ///
- /// Gets the file name of the workbook including its full directory.
- ///
- public String FullName { get; private set; }
- ///
- /// Gets an object to manipulate this workbook's theme.
- ///
- public IXLTheme Theme { get; private set; }
-
- ///
- /// Saves the current workbook.
- ///
- public void Save()
- {
- if (m_loadSource == XLLoadSource.New)
- {
- throw new Exception("This is a new file, please use one of the SaveAs methods.");
- }
-
- if (m_loadSource == XLLoadSource.Stream)
- {
- CreatePackage(m_originalStream, false);
- }
- else
- {
- CreatePackage(m_originalFile);
- }
- }
- ///
- /// Saves the current workbook to a file.
- ///
- public void SaveAs(String file)
- {
- PathHelper.CreateDirectory(Path.GetDirectoryName(file));
- if (m_loadSource == XLLoadSource.New)
- {
- if (File.Exists(file))
- {
- File.Delete(file);
- }
-
- CreatePackage(file);
- }
- else if (m_loadSource == XLLoadSource.File)
- {
- if (String.Compare(m_originalFile.Trim(), file.Trim(), true) != 0)
- {
- File.Copy(m_originalFile, file, true);
- }
-
- CreatePackage(file);
- }
- else if (m_loadSource == XLLoadSource.Stream)
- {
- m_originalStream.Position = 0;
-
- using (var fileStream = File.Create(file))
- {
- CopyStream(m_originalStream, fileStream);
- //fileStream.Position = 0;
- CreatePackage(fileStream, false);
- fileStream.Close();
- }
- }
- }
- ///
- /// Saves the current workbook to a stream.
- ///
- public void SaveAs(Stream stream)
- {
- if (m_loadSource == XLLoadSource.New)
- {
- CreatePackage(stream, true);
- }
- else if (m_loadSource == XLLoadSource.File)
- {
- using (var fileStream = new FileStream(m_originalFile, FileMode.Open))
- {
- CopyStream(fileStream, stream);
- fileStream.Close();
- }
- CreatePackage(stream, false);
- }
- else if (m_loadSource == XLLoadSource.Stream)
- {
- m_originalStream.Position = 0;
- if (m_originalStream != stream)
- {
- CopyStream(m_originalStream, stream);
- }
-
- CreatePackage(stream, false);
- }
- }
-
- internal void CopyStream(Stream input, Stream output)
- {
- byte[] buffer = new byte[8*1024];
- int len;
- while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
- {
- output.Write(buffer, 0, len);
- }
- }
-
- ///
- /// Gets or sets the default style for the workbook.
- /// All new worksheets will use this style.
- ///
- public IXLStyle Style { get; set; }
- ///
- /// Gets or sets the default row height for the workbook.
- /// All new worksheets will use this row height.
- ///
- public Double RowHeight { get; set; }
- ///
- /// Gets or sets the default column width for the workbook.
- /// All new worksheets will use this column width.
- ///
- public Double ColumnWidth { get; set; }
- ///
- /// Gets or sets the default page options for the workbook.
- /// All new worksheets will use these page options.
- ///
- public IXLPageSetup PageOptions { get; set; }
- ///
- /// Gets or sets the default outline options for the workbook.
- /// All new worksheets will use these outline options.
- ///
- public IXLOutline Outline { get; set; }
- ///
- /// Gets or sets the workbook's properties.
- ///
- public XLWorkbookProperties Properties { get; set; }
- ///
- /// Gets or sets the workbook's calculation mode.
- ///
- public XLCalculateMode CalculateMode { get; set; }
- ///
- /// Gets or sets the workbook's reference style.
- ///
- public XLReferenceStyle ReferenceStyle { get; set; }
- #endregion
- public IXLWorksheet Worksheet(String name)
- {
- return WorksheetsInternal.Worksheet(name);
- }
- public IXLWorksheet Worksheet(Int32 position)
- {
- return WorksheetsInternal.Worksheet(position);
- }
-
- public IXLCustomProperty CustomProperty(String name)
- {
- return CustomProperties.CustomProperty(name);
- }
-
- public IXLCustomProperties CustomProperties { get; private set; }
-
- public IXLCells FindCells(Func predicate)
- {
- var cells = new XLCells( false, false);
- foreach (var ws in WorksheetsInternal)
- {
- foreach (var cell in ws.CellsUsed(true))
- {
- if (predicate(cell))
- {
- cells.Add(cell);
- }
- }
- }
- return cells;
- }
- public IXLRows FindRows(Func predicate)
- {
- var rows = new XLRows(null);
- foreach (var ws in WorksheetsInternal)
- {
- foreach (var row in ws.Rows())
- {
- if (predicate(row))
- {
- rows.Add(row as XLRow);
- }
- }
- }
- return rows;
- }
- public IXLColumns FindColumns(Func predicate)
- {
- var columns = new XLColumns(null);
- foreach (var ws in WorksheetsInternal)
- {
- foreach (var column in ws.Columns())
- {
- if (predicate(column))
- {
- columns.Add(column as XLColumn);
- }
- }
- }
- return columns;
- }
-
- public Boolean ShowFormulas { get; set; }
- public Boolean ShowGridLines { get; set; }
- public Boolean ShowOutlineSymbols { get; set; }
- public Boolean ShowRowColHeaders { get; set; }
- public Boolean ShowRuler { get; set; }
- public Boolean ShowWhiteSpace { get; set; }
- public Boolean ShowZeros { get; set; }
-
- public Boolean DefaultShowFormulas
- {
- get { return false; }
- }
- public Boolean DefaultShowGridLines
- {
- get { return true; }
- }
- public Boolean DefaultShowOutlineSymbols
- {
- get { return true; }
- }
- public Boolean DefaultShowRowColHeaders
- {
- get { return true; }
- }
- public Boolean DefaultShowRuler
- {
- get { return true; }
- }
- public Boolean DefaultShowWhiteSpace
- {
- get { return true; }
- }
- public Boolean DefaultShowZeros
- {
- get { return true; }
- }
-
- private class UnsupportedSheet
- {
- public UInt32 SheetId;
public Boolean IsActive;
+ public UInt32 SheetId;
}
- private Dictionary _unsupportedSheets = new Dictionary();
- //--
- #region Nested Type: XLLoadSource
- private enum XLLoadSource
- {
- New,
- File,
- Stream
- };
+
#endregion
+
+ //--
}
}
\ No newline at end of file
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs
index b7df233..925dca7 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs
@@ -255,6 +255,11 @@
Worksheet((Int32)(workbookView.ActiveTab.Value + 1)).SetTabActive();
}
+ LoadDefinedNames(workbook);
+ }
+
+ private void LoadDefinedNames(Workbook workbook)
+ {
if (workbook.DefinedNames == null) return;
foreach (DefinedName definedName in workbook.DefinedNames)
@@ -264,28 +269,15 @@
{
foreach (string area in definedName.Text.Split(','))
{
- var sections = area.Trim().Split('!');
- string sheetName = sections[0].Replace("\'", "");
- string sheetArea = sections[1];
+ string sheetName, sheetArea;
+ ParseReference(area, out sheetName, out sheetArea);
if (!sheetArea.Equals("#REF"))
WorksheetsInternal.Worksheet(sheetName).PageSetup.PrintAreas.Add(sheetArea);
}
}
else if (name == "_xlnm.Print_Titles")
{
- var areas = definedName.Text.Split(',');
-
- var colSections = areas[0].Trim().Split('!');
- string sheetNameCol = colSections[0].Replace("\'", "");
- string sheetAreaCol = colSections[1];
- if (!sheetAreaCol.Equals("#REF"))
- WorksheetsInternal.Worksheet(sheetNameCol).PageSetup.SetColumnsToRepeatAtLeft(sheetAreaCol);
-
- var rowSections = areas[1].Split('!');
- string sheetNameRow = rowSections[0].Replace("\'", "");
- string sheetAreaRow = rowSections[1];
- if (!sheetAreaRow.Equals("#REF"))
- WorksheetsInternal.Worksheet(sheetNameRow).PageSetup.SetRowsToRepeatAtTop(sheetAreaRow);
+ LoadPrintTitles(definedName);
}
else
{
@@ -304,6 +296,50 @@
}
}
+ private void LoadPrintTitles(DefinedName definedName)
+ {
+ var areas = definedName.Text.Split(',');
+ if (areas.Length > 0)
+ {
+ foreach (var item in areas)
+ {
+ SetColumnsOrRowsToRepeat(item);
+ }
+ return;
+ }
+
+ SetColumnsOrRowsToRepeat(definedName.Text);
+ }
+
+ private void SetColumnsOrRowsToRepeat(string area)
+ {
+ string sheetName, sheetArea;
+ ParseReference(area, out sheetName, out sheetArea);
+ if (sheetArea.Equals("#REF")) return;
+ if (IsColReference(sheetArea))
+ WorksheetsInternal.Worksheet(sheetName).PageSetup.SetColumnsToRepeatAtLeft(sheetArea);
+ if (IsRowReference(sheetArea))
+ WorksheetsInternal.Worksheet(sheetName).PageSetup.SetRowsToRepeatAtTop(sheetArea);
+ }
+
+ // either $A:$X => true or $1:$99 => false
+ private static bool IsColReference(string sheetArea)
+ {
+ return char.IsLetter(sheetArea[1]);
+ }
+
+ private static bool IsRowReference(string sheetArea)
+ {
+ return char.IsNumber(sheetArea[1]);
+ }
+
+ private static void ParseReference(string item, out string sheetName, out string sheetArea)
+ {
+ var sections = item.Trim().Split('!');
+ sheetName = sections[0].Replace("\'", "");
+ sheetArea = sections[1];
+ }
+
private void LoadCells(SharedStringItem[] sharedStrings, Stylesheet s, NumberingFormats numberingFormats,
Fills fills, Borders borders, Fonts fonts, Dictionary sharedFormulasR1C1,
XLWorksheet ws, Dictionary styleList, Cell cell)
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs
index fa57c72..b342dae 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs
@@ -74,6 +74,7 @@
ShowRuler = workbook.ShowRuler;
ShowWhiteSpace = workbook.ShowWhiteSpace;
ShowZeros = workbook.ShowZeros;
+ RightToLeft = workbook.RightToLeft;
TabColor = new XLColor();
}
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnCells.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnCells.xlsx
index ef306a0..d4fadc8 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnCells.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnCells.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnCollection.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnCollection.xlsx
index 93416da..1928647 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnCollection.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnCollection.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnSettings.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnSettings.xlsx
index f8c9a35..da2b209 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnSettings.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/ColumnSettings.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/DeletingColumns.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/DeletingColumns.xlsx
index cba61e8..9555711 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/DeletingColumns.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/DeletingColumns.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/InsertColumns.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/InsertColumns.xlsx
index 56a3734..1fc75dc 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/InsertColumns.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Columns/InsertColumns.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Delete/RemoveRows.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Delete/RemoveRows.xlsx
index 73d2b11..194f747 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Delete/RemoveRows.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Delete/RemoveRows.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Loading/ChangingBasicTable.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Loading/ChangingBasicTable.xlsx
index ef86a9d..777a42a 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Loading/ChangingBasicTable.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Loading/ChangingBasicTable.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AddingDataSet.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AddingDataSet.xlsx
index 61a07ab..420ba18 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AddingDataSet.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AddingDataSet.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AddingDataTableAsWorksheet.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AddingDataTableAsWorksheet.xlsx
index 7206cf5..37723bd 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AddingDataTableAsWorksheet.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AddingDataTableAsWorksheet.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AdjustToContents.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AdjustToContents.xlsx
index 13da819..beda471 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AdjustToContents.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AdjustToContents.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AutoFilter.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AutoFilter.xlsx
index bf5fe0c..0fcb6a5 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AutoFilter.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/AutoFilter.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CellValues.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CellValues.xlsx
index 6f4c951..d300c59 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CellValues.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CellValues.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Collections.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Collections.xlsx
index dfbe006..8ef241d 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Collections.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Collections.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CopyingRowsAndColumns.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CopyingRowsAndColumns.xlsx
index 3e855c1..90dbc02 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CopyingRowsAndColumns.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CopyingRowsAndColumns.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CopyingWorksheets.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CopyingWorksheets.xlsx
index 83b6dcd..64858ef 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CopyingWorksheets.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/CopyingWorksheets.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/DataTypes.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/DataTypes.xlsx
index e56e6c2..0cef0e4 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/DataTypes.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/DataTypes.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/DataValidation.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/DataValidation.xlsx
index 338b10e..5c92d41 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/DataValidation.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/DataValidation.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Formulas.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Formulas.xlsx
index ef429cf..4186afe 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Formulas.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Formulas.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Hyperlinks.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Hyperlinks.xlsx
index 2865a77..6286982 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Hyperlinks.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/Hyperlinks.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/InsertingData.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/InsertingData.xlsx
index b07785a..1e2da14 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/InsertingData.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/InsertingData.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/InsertingTables.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/InsertingTables.xlsx
index 36921c0..fa7b7b4 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/InsertingTables.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/InsertingTables.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/LambdaExpressions.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/LambdaExpressions.xlsx
index 8606781..778f703 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/LambdaExpressions.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/LambdaExpressions.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MergeCells.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MergeCells.xlsx
index 319c15a..00c5538 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MergeCells.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MergeCells.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MergeMoves.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MergeMoves.xlsx
index f6ee196..57d3114 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MergeMoves.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MergeMoves.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MultipleSheets.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MultipleSheets.xlsx
index 77113b8..a946000 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MultipleSheets.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/MultipleSheets.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/SheetProtection.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/SheetProtection.xlsx
index bfbf83f..00a70ae 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/SheetProtection.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/SheetProtection.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/ShiftingFormulas.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/ShiftingFormulas.xlsx
index 5932e47..d586e00 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/ShiftingFormulas.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/ShiftingFormulas.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/ShowCase.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/ShowCase.xlsx
index 9f4fc84..4623b47 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/ShowCase.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Misc/ShowCase.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/PageSetup/Sheets.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/PageSetup/Sheets.xlsx
index d18f123..cf4884a 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/PageSetup/Sheets.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/PageSetup/Sheets.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/PageSetup/TwoPages.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/PageSetup/TwoPages.xlsx
index cca6dfd..7345fc0 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/PageSetup/TwoPages.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/PageSetup/TwoPages.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/ClearingRanges.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/ClearingRanges.xlsx
index b031a9e..42930c4 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/ClearingRanges.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/ClearingRanges.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/CopyingRanges.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/CopyingRanges.xlsx
index 1ae2327..89b7166 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/CopyingRanges.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/CopyingRanges.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/CurrentRowColumn.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/CurrentRowColumn.xlsx
index 970d1ef..f8059f3 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/CurrentRowColumn.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/CurrentRowColumn.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/DefiningRanges.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/DefiningRanges.xlsx
index 041a860..b3b6f33 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/DefiningRanges.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/DefiningRanges.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/DeletingRanges.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/DeletingRanges.xlsx
index a3e8e16..52e3601 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/DeletingRanges.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/DeletingRanges.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/InsertingDeletingColumns.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/InsertingDeletingColumns.xlsx
index e97d636..6b527f5 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/InsertingDeletingColumns.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/InsertingDeletingColumns.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/InsertingDeletingRows.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/InsertingDeletingRows.xlsx
index 58604da..5fa4de0 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/InsertingDeletingRows.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/InsertingDeletingRows.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/MultipleRanges.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/MultipleRanges.xlsx
index 18be482..585a6cc 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/MultipleRanges.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/MultipleRanges.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/NamedRanges.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/NamedRanges.xlsx
index 4ed8f2f..a7cee06 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/NamedRanges.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/NamedRanges.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/ShiftingRanges.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/ShiftingRanges.xlsx
index affc57d..cbe1c8d 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/ShiftingRanges.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/ShiftingRanges.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/SortExample.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/SortExample.xlsx
index a6913c8..44aff24 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/SortExample.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/SortExample.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/Sorting.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/Sorting.xlsx
index 6d3cb87..4842bac 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/Sorting.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/Sorting.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/TransposeRanges.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/TransposeRanges.xlsx
index 1a9b9de..8f32e21 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/TransposeRanges.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/TransposeRanges.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/TransposeRangesPlus.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/TransposeRangesPlus.xlsx
index eee4d2c..81c2227 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/TransposeRangesPlus.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/TransposeRangesPlus.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/UsingTables.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/UsingTables.xlsx
index 1b576be..bd367a7 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/UsingTables.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/UsingTables.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/WalkingRanges.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/WalkingRanges.xlsx
index 2da686f..83f796c 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/WalkingRanges.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Ranges/WalkingRanges.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/InsertRows.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/InsertRows.xlsx
index 09e050b..16ce005 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/InsertRows.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/InsertRows.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowCells.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowCells.xlsx
index 6b15d58..47274b1 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowCells.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowCells.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowCollection.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowCollection.xlsx
index e380464..8a3cfe2 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowCollection.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowCollection.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowSettings.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowSettings.xlsx
index b161840..f3df9d0 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowSettings.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Rows/RowSettings.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleAlignment.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleAlignment.xlsx
index 9e42840..2a45e50 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleAlignment.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleAlignment.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleBorder.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleBorder.xlsx
index a10b807..f313012 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleBorder.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleBorder.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleFill.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleFill.xlsx
index fa3c920..6f8014b 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleFill.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleFill.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleFont.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleFont.xlsx
index da7db76..8a4c121 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleFont.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleFont.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleNumberFormat.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleNumberFormat.xlsx
index 9e82fed..fa32b25 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleNumberFormat.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleNumberFormat.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleRowsColumns.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleRowsColumns.xlsx
index 552b08a..59b9f25 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleRowsColumns.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleRowsColumns.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleWorksheet.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleWorksheet.xlsx
index c781e1a..737d597 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleWorksheet.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/StyleWorksheet.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/UsingRichText.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/UsingRichText.xlsx
index fa7009d..bc9c7b5 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/UsingRichText.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/Styles/UsingRichText.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/TestHelper.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/TestHelper.cs
index a4ddde5..16857cc 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/TestHelper.cs
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/TestHelper.cs
@@ -9,7 +9,7 @@
{
//Note: Run example tests parameters
public const string TestsOutputDirectory = @"C:\Excel Files\Tests\";
- public const string ActualTestResultPostFix = "(Actual)";
+ public const string ActualTestResultPostFix = "";
public static readonly string TestsExampleOutputDirectory = Path.Combine(TestsOutputDirectory, "Examples");
private const bool CompareWithResources = true;
@@ -25,18 +25,20 @@
where T : IXLExample, new()
{
var example = new T();
- string filePath = Path.Combine(TestsExampleOutputDirectory, filePartName);
+ string filePath1 = Path.Combine(TestsExampleOutputDirectory, filePartName);
- var extension = Path.GetExtension(filePath);
- var directory = Path.GetDirectoryName(filePath);
+ var extension = Path.GetExtension(filePath1);
+ var directory = Path.GetDirectoryName(filePath1);
- var fileName= Path.GetFileNameWithoutExtension(filePath);
+ var fileName= Path.GetFileNameWithoutExtension(filePath1);
fileName += ActualTestResultPostFix;
fileName = Path.ChangeExtension(fileName, extension);
- filePath = Path.Combine(directory, fileName);
+ filePath1 = Path.Combine(directory, "z" + fileName);
+ var filePath2 = Path.Combine(directory, fileName);
//Run test
- example.Create(filePath);
+ example.Create(filePath1);
+ new XLWorkbook(filePath1).SaveAs(filePath2);
bool success = true;
#pragma warning disable 162
try
@@ -49,7 +51,7 @@
{
string resourcePath = filePartName.Replace('\\', '.').TrimStart('.');
using (var streamExpected = _extractor.ReadFileFromResToStream(resourcePath))
- using (var streamActual = File.OpenRead(filePath))
+ using (var streamActual = File.OpenRead(filePath2))
{
string message;
success = ExcelDocsComparer.Compare(streamActual, streamExpected, out message);