diff --git a/ClosedXML/ClosedXML/ClosedXML.sln b/ClosedXML/ClosedXML/ClosedXML.sln
index e56d111..e8a7f7d 100644
--- a/ClosedXML/ClosedXML/ClosedXML.sln
+++ b/ClosedXML/ClosedXML/ClosedXML.sln
@@ -49,34 +49,38 @@
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|Mixed Platforms.Build.0 = Debug|x86
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|x64.ActiveCfg = Debug|x64
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|x64.Build.0 = Debug|x64
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|x86.ActiveCfg = Debug|x86
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|x86.Build.0 = Debug|x86
- {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|Any CPU.ActiveCfg = Release|x86
+ {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|Any CPU.Build.0 = Release|Any CPU
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|Mixed Platforms.ActiveCfg = Release|x86
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|Mixed Platforms.Build.0 = Release|x86
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|x64.ActiveCfg = Release|x64
{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|x64.Build.0 = Release|x64
- {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|x86.ActiveCfg = Release|x64
- {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|x86.Build.0 = Release|x64
- {03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|x86.ActiveCfg = Release|Any CPU
+ {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Release|x86.Build.0 = Release|Any CPU
+ {03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|Any CPU.Build.0 = Debug|Any CPU
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|Mixed Platforms.Build.0 = Debug|x86
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|x64.ActiveCfg = Debug|x64
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|x64.Build.0 = Debug|x64
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|x86.ActiveCfg = Debug|x86
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|x86.Build.0 = Debug|x86
- {03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|Any CPU.ActiveCfg = Release|x86
+ {03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|Any CPU.Build.0 = Release|Any CPU
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|Mixed Platforms.ActiveCfg = Release|x86
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|Mixed Platforms.Build.0 = Release|x86
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|x64.ActiveCfg = Release|x64
{03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|x64.Build.0 = Release|x64
- {03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|x86.ActiveCfg = Release|x64
- {03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|x86.Build.0 = Release|x64
+ {03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|x86.ActiveCfg = Release|Any CPU
+ {03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|x86.Build.0 = Release|Any CPU
{5F43B12B-A900-40C6-9924-A0C0B032F791}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5F43B12B-A900-40C6-9924-A0C0B032F791}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F43B12B-A900-40C6-9924-A0C0B032F791}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -93,20 +97,22 @@
{5F43B12B-A900-40C6-9924-A0C0B032F791}.Release|x64.Build.0 = Release|x64
{5F43B12B-A900-40C6-9924-A0C0B032F791}.Release|x86.ActiveCfg = Release|Any CPU
{5F43B12B-A900-40C6-9924-A0C0B032F791}.Release|x86.Build.0 = Release|Any CPU
- {E005997D-B192-461F-AA3E-44007A33A3DF}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {E005997D-B192-461F-AA3E-44007A33A3DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E005997D-B192-461F-AA3E-44007A33A3DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E005997D-B192-461F-AA3E-44007A33A3DF}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{E005997D-B192-461F-AA3E-44007A33A3DF}.Debug|Mixed Platforms.Build.0 = Debug|x86
{E005997D-B192-461F-AA3E-44007A33A3DF}.Debug|x64.ActiveCfg = Debug|x64
{E005997D-B192-461F-AA3E-44007A33A3DF}.Debug|x64.Build.0 = Debug|x64
{E005997D-B192-461F-AA3E-44007A33A3DF}.Debug|x86.ActiveCfg = Debug|x86
{E005997D-B192-461F-AA3E-44007A33A3DF}.Debug|x86.Build.0 = Debug|x86
- {E005997D-B192-461F-AA3E-44007A33A3DF}.Release|Any CPU.ActiveCfg = Release|x86
+ {E005997D-B192-461F-AA3E-44007A33A3DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E005997D-B192-461F-AA3E-44007A33A3DF}.Release|Any CPU.Build.0 = Release|Any CPU
{E005997D-B192-461F-AA3E-44007A33A3DF}.Release|Mixed Platforms.ActiveCfg = Release|x86
{E005997D-B192-461F-AA3E-44007A33A3DF}.Release|Mixed Platforms.Build.0 = Release|x86
{E005997D-B192-461F-AA3E-44007A33A3DF}.Release|x64.ActiveCfg = Release|x64
{E005997D-B192-461F-AA3E-44007A33A3DF}.Release|x64.Build.0 = Release|x64
- {E005997D-B192-461F-AA3E-44007A33A3DF}.Release|x86.ActiveCfg = Release|x64
- {E005997D-B192-461F-AA3E-44007A33A3DF}.Release|x86.Build.0 = Release|x64
+ {E005997D-B192-461F-AA3E-44007A33A3DF}.Release|x86.ActiveCfg = Release|Any CPU
+ {E005997D-B192-461F-AA3E-44007A33A3DF}.Release|x86.Build.0 = Release|Any CPU
{BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
@@ -121,8 +127,8 @@
{BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|Mixed Platforms.Build.0 = Release|x64
{BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|x64.ActiveCfg = Release|x64
{BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|x64.Build.0 = Release|x64
- {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|x86.ActiveCfg = Release|x86
- {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|x86.Build.0 = Release|x86
+ {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|x86.ActiveCfg = Release|Any CPU
+ {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj b/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj
index 9245108..caa2eea 100644
--- a/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj
+++ b/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj
@@ -145,6 +145,7 @@
+
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/IXLColumn.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/IXLColumn.cs
index 38f6ab6..fa1190f 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/IXLColumn.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/IXLColumn.cs
@@ -168,5 +168,10 @@
IXLRangeColumn Column(Int32 start, Int32 end);
IXLRangeColumns Columns(String columns);
+
+ ///
+ /// Adds a vertical page break after this column.
+ ///
+ IXLColumn AddVerticalPageBreak();
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/IXLColumns.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/IXLColumns.cs
index 82ef949..e90a926 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/IXLColumns.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/IXLColumns.cs
@@ -109,6 +109,9 @@
IXLStyle Style { get; set; }
-
+ ///
+ /// Adds a vertical page break after these columns.
+ ///
+ IXLColumns AddVerticalPageBreaks();
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumn.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumn.cs
index 4df22cc..677a53b 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumn.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumn.cs
@@ -661,5 +661,13 @@
return retVal;
}
+ ///
+ /// Adds a vertical page break after this column.
+ ///
+ public IXLColumn AddVerticalPageBreak()
+ {
+ Worksheet.PageSetup.AddVerticalPageBreak(this.ColumnNumber());
+ return this;
+ }
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumns.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumns.cs
index d05f34b..afbf817 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumns.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Columns/XLColumns.cs
@@ -248,6 +248,14 @@
}
}
-
+ ///
+ /// Adds a vertical page break after this column.
+ ///
+ public IXLColumns AddVerticalPageBreaks()
+ {
+ foreach (var col in columns)
+ col.Worksheet.PageSetup.AddVerticalPageBreak(col.ColumnNumber());
+ return this;
+ }
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/EnumConverter.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/EnumConverter.cs
new file mode 100644
index 0000000..4f1b858
--- /dev/null
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/EnumConverter.cs
@@ -0,0 +1,797 @@
+using System;
+using DocumentFormat.OpenXml.Spreadsheet;
+
+namespace ClosedXML.Excel
+{
+ internal static class EnumConverter
+ {
+ #region To OpenXml
+ public static UnderlineValues ToOpenXml(this XLFontUnderlineValues value)
+ {
+ switch (value)
+ {
+ case XLFontUnderlineValues.Double:
+ return UnderlineValues.Double;
+ case XLFontUnderlineValues.DoubleAccounting:
+ return UnderlineValues.DoubleAccounting;
+ case XLFontUnderlineValues.None:
+ return UnderlineValues.None;
+ case XLFontUnderlineValues.Single:
+ return UnderlineValues.Single;
+ case XLFontUnderlineValues.SingleAccounting:
+ return UnderlineValues.SingleAccounting;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static OrientationValues ToOpenXml(this XLPageOrientation value)
+ {
+ switch (value)
+ {
+ case XLPageOrientation.Default:
+ return OrientationValues.Default;
+ case XLPageOrientation.Landscape:
+ return OrientationValues.Landscape;
+ case XLPageOrientation.Portrait:
+ return OrientationValues.Portrait;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static VerticalAlignmentRunValues ToOpenXml(this XLFontVerticalTextAlignmentValues value)
+ {
+ switch (value)
+ {
+ case XLFontVerticalTextAlignmentValues.Baseline:
+ return VerticalAlignmentRunValues.Baseline;
+ case XLFontVerticalTextAlignmentValues.Subscript:
+ return VerticalAlignmentRunValues.Subscript;
+ case XLFontVerticalTextAlignmentValues.Superscript:
+ return VerticalAlignmentRunValues.Superscript;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static PatternValues ToOpenXml(this XLFillPatternValues value)
+ {
+ switch (value)
+ {
+ case XLFillPatternValues.DarkDown:
+ return PatternValues.DarkDown;
+ case XLFillPatternValues.DarkGray:
+ return PatternValues.DarkGray;
+ case XLFillPatternValues.DarkGrid:
+ return PatternValues.DarkGrid;
+ case XLFillPatternValues.DarkHorizontal:
+ return PatternValues.DarkHorizontal;
+ case XLFillPatternValues.DarkTrellis:
+ return PatternValues.DarkTrellis;
+ case XLFillPatternValues.DarkUp:
+ return PatternValues.DarkUp;
+ case XLFillPatternValues.DarkVertical:
+ return PatternValues.DarkVertical;
+ case XLFillPatternValues.Gray0625:
+ return PatternValues.Gray0625;
+ case XLFillPatternValues.Gray125:
+ return PatternValues.Gray125;
+ case XLFillPatternValues.LightDown:
+ return PatternValues.LightDown;
+ case XLFillPatternValues.LightGray:
+ return PatternValues.LightGray;
+ case XLFillPatternValues.LightGrid:
+ return PatternValues.LightGrid;
+ case XLFillPatternValues.LightHorizontal:
+ return PatternValues.LightHorizontal;
+ case XLFillPatternValues.LightTrellis:
+ return PatternValues.LightTrellis;
+ case XLFillPatternValues.LightUp:
+ return PatternValues.LightUp;
+ case XLFillPatternValues.LightVertical:
+ return PatternValues.LightVertical;
+ case XLFillPatternValues.MediumGray:
+ return PatternValues.MediumGray;
+ case XLFillPatternValues.None:
+ return PatternValues.None;
+ case XLFillPatternValues.Solid:
+ return PatternValues.Solid;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static BorderStyleValues ToOpenXml(this XLBorderStyleValues value)
+ {
+ switch (value)
+ {
+ case XLBorderStyleValues.DashDot:
+ return BorderStyleValues.DashDot;
+ case XLBorderStyleValues.DashDotDot:
+ return BorderStyleValues.DashDotDot;
+ case XLBorderStyleValues.Dashed:
+ return BorderStyleValues.Dashed;
+ case XLBorderStyleValues.Dotted:
+ return BorderStyleValues.Dotted;
+ case XLBorderStyleValues.Double:
+ return BorderStyleValues.Double;
+ case XLBorderStyleValues.Hair:
+ return BorderStyleValues.Hair;
+ case XLBorderStyleValues.Medium:
+ return BorderStyleValues.Medium;
+ case XLBorderStyleValues.MediumDashDot:
+ return BorderStyleValues.MediumDashDot;
+ case XLBorderStyleValues.MediumDashDotDot:
+ return BorderStyleValues.MediumDashDotDot;
+ case XLBorderStyleValues.MediumDashed:
+ return BorderStyleValues.MediumDashed;
+ case XLBorderStyleValues.None:
+ return BorderStyleValues.None;
+ case XLBorderStyleValues.SlantDashDot:
+ return BorderStyleValues.SlantDashDot;
+ case XLBorderStyleValues.Thick:
+ return BorderStyleValues.Thick;
+ case XLBorderStyleValues.Thin:
+ return BorderStyleValues.Thin;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static HorizontalAlignmentValues ToOpenXml(this XLAlignmentHorizontalValues value)
+ {
+ switch (value)
+ {
+ case XLAlignmentHorizontalValues.Center:
+ return HorizontalAlignmentValues.Center;
+ case XLAlignmentHorizontalValues.CenterContinuous:
+ return HorizontalAlignmentValues.CenterContinuous;
+ case XLAlignmentHorizontalValues.Distributed:
+ return HorizontalAlignmentValues.Distributed;
+ case XLAlignmentHorizontalValues.Fill:
+ return HorizontalAlignmentValues.Fill;
+ case XLAlignmentHorizontalValues.General:
+ return HorizontalAlignmentValues.General;
+ case XLAlignmentHorizontalValues.Justify:
+ return HorizontalAlignmentValues.Justify;
+ case XLAlignmentHorizontalValues.Left:
+ return HorizontalAlignmentValues.Left;
+ case XLAlignmentHorizontalValues.Right:
+ return HorizontalAlignmentValues.Right;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static VerticalAlignmentValues ToOpenXml(this XLAlignmentVerticalValues value)
+ {
+ switch (value)
+ {
+ case XLAlignmentVerticalValues.Bottom:
+ return VerticalAlignmentValues.Bottom;
+ case XLAlignmentVerticalValues.Center:
+ return VerticalAlignmentValues.Center;
+ case XLAlignmentVerticalValues.Distributed:
+ return VerticalAlignmentValues.Distributed;
+ case XLAlignmentVerticalValues.Justify:
+ return VerticalAlignmentValues.Justify;
+ case XLAlignmentVerticalValues.Top:
+ return VerticalAlignmentValues.Top;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static PageOrderValues ToOpenXml(this XLPageOrderValues value)
+ {
+ switch (value)
+ {
+ case XLPageOrderValues.DownThenOver:
+ return PageOrderValues.DownThenOver;
+ case XLPageOrderValues.OverThenDown:
+ return PageOrderValues.OverThenDown;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static CellCommentsValues ToOpenXml(this XLShowCommentsValues value)
+ {
+ switch (value)
+ {
+ case XLShowCommentsValues.AsDisplayed:
+ return CellCommentsValues.AsDisplayed;
+ case XLShowCommentsValues.AtEnd:
+ return CellCommentsValues.AtEnd;
+ case XLShowCommentsValues.None:
+ return CellCommentsValues.None;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static PrintErrorValues ToOpenXml(this XLPrintErrorValues value)
+ {
+ switch (value)
+ {
+ case XLPrintErrorValues.Blank:
+ return PrintErrorValues.Blank;
+ case XLPrintErrorValues.Dash:
+ return PrintErrorValues.Dash;
+ case XLPrintErrorValues.Displayed:
+ return PrintErrorValues.Displayed;
+ case XLPrintErrorValues.NA:
+ return PrintErrorValues.NA;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static CalculateModeValues ToOpenXml(this XLCalculateMode value)
+ {
+ switch (value)
+ {
+ case XLCalculateMode.Auto:
+ return CalculateModeValues.Auto;
+ case XLCalculateMode.AutoNoTable:
+ return CalculateModeValues.AutoNoTable;
+ case XLCalculateMode.Manual:
+ return CalculateModeValues.Manual;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static ReferenceModeValues ToOpenXml(this XLReferenceStyle value)
+ {
+ switch (value)
+ {
+ case XLReferenceStyle.R1C1:
+ return ReferenceModeValues.R1C1;
+ case XLReferenceStyle.A1:
+ return ReferenceModeValues.A1;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static uint ToOpenXml(this XLAlignmentReadingOrderValues value)
+ {
+ switch (value)
+ {
+ case XLAlignmentReadingOrderValues.ContextDependent:
+ return 0;
+ case XLAlignmentReadingOrderValues.LeftToRight:
+ return 1;
+ case XLAlignmentReadingOrderValues.RightToLeft:
+ return 2;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static TotalsRowFunctionValues ToOpenXml(this XLTotalsRowFunction value)
+ {
+ switch (value)
+ {
+ case XLTotalsRowFunction.None:
+ return TotalsRowFunctionValues.None;
+ case XLTotalsRowFunction.Sum:
+ return TotalsRowFunctionValues.Sum;
+ case XLTotalsRowFunction.Minimum:
+ return TotalsRowFunctionValues.Minimum;
+ case XLTotalsRowFunction.Maximum:
+ return TotalsRowFunctionValues.Maximum;
+ case XLTotalsRowFunction.Average:
+ return TotalsRowFunctionValues.Average;
+ case XLTotalsRowFunction.Count:
+ return TotalsRowFunctionValues.Count;
+ case XLTotalsRowFunction.CountNumbers:
+ return TotalsRowFunctionValues.CountNumbers;
+ case XLTotalsRowFunction.StandardDeviation:
+ return TotalsRowFunctionValues.StandardDeviation;
+ case XLTotalsRowFunction.Variance:
+ return TotalsRowFunctionValues.Variance;
+ case XLTotalsRowFunction.Custom:
+ return TotalsRowFunctionValues.Custom;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static DataValidationValues ToOpenXml(this XLAllowedValues value)
+ {
+ switch (value)
+ {
+ case XLAllowedValues.AnyValue:
+ return DataValidationValues.None;
+ case XLAllowedValues.Custom:
+ return DataValidationValues.Custom;
+ case XLAllowedValues.Date:
+ return DataValidationValues.Date;
+ case XLAllowedValues.Decimal:
+ return DataValidationValues.Decimal;
+ case XLAllowedValues.List:
+ return DataValidationValues.List;
+ case XLAllowedValues.TextLength:
+ return DataValidationValues.TextLength;
+ case XLAllowedValues.Time:
+ return DataValidationValues.Time;
+ case XLAllowedValues.WholeNumber:
+ return DataValidationValues.Whole;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static DataValidationErrorStyleValues ToOpenXml(this XLErrorStyle value)
+ {
+ switch (value)
+ {
+ case XLErrorStyle.Information:
+ return DataValidationErrorStyleValues.Information;
+ case XLErrorStyle.Warning:
+ return DataValidationErrorStyleValues.Warning;
+ case XLErrorStyle.Stop:
+ return DataValidationErrorStyleValues.Stop;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static DataValidationOperatorValues ToOpenXml(this XLOperator value)
+ {
+ switch (value)
+ {
+ case XLOperator.Between:
+ return DataValidationOperatorValues.Between;
+ case XLOperator.EqualOrGreaterThan:
+ return DataValidationOperatorValues.GreaterThanOrEqual;
+ case XLOperator.EqualOrLessThan:
+ return DataValidationOperatorValues.LessThanOrEqual;
+ case XLOperator.EqualTo:
+ return DataValidationOperatorValues.Equal;
+ case XLOperator.GreaterThan:
+ return DataValidationOperatorValues.GreaterThan;
+ case XLOperator.LessThan:
+ return DataValidationOperatorValues.LessThan;
+ case XLOperator.NotBetween:
+ return DataValidationOperatorValues.NotBetween;
+ case XLOperator.NotEqualTo:
+ return DataValidationOperatorValues.NotEqual;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static SheetStateValues ToOpenXml(this XLWorksheetVisibility value)
+ {
+ switch (value)
+ {
+ case XLWorksheetVisibility.Visible:
+ return SheetStateValues.Visible;
+ case XLWorksheetVisibility.Hidden:
+ return SheetStateValues.Hidden;
+ case XLWorksheetVisibility.VeryHidden:
+ return SheetStateValues.VeryHidden;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ #endregion
+ #region To ClosedXml
+ public static XLFontUnderlineValues ToClosedXml(this UnderlineValues value)
+ {
+ switch (value)
+ {
+ case UnderlineValues.Double:
+ return XLFontUnderlineValues.Double;
+ case UnderlineValues.DoubleAccounting:
+ return XLFontUnderlineValues.DoubleAccounting;
+ case UnderlineValues.None:
+ return XLFontUnderlineValues.None;
+ case UnderlineValues.Single:
+ return XLFontUnderlineValues.Single;
+ case UnderlineValues.SingleAccounting:
+ return XLFontUnderlineValues.SingleAccounting;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLPageOrientation ToClosedXml(this OrientationValues value)
+ {
+ switch (value)
+ {
+ case OrientationValues.Default:
+ return XLPageOrientation.Default;
+ case OrientationValues.Landscape:
+ return XLPageOrientation.Landscape;
+ case OrientationValues.Portrait:
+ return XLPageOrientation.Portrait;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLFontVerticalTextAlignmentValues ToClosedXml(this VerticalAlignmentRunValues value)
+ {
+ switch (value)
+ {
+ case VerticalAlignmentRunValues.Baseline:
+ return XLFontVerticalTextAlignmentValues.Baseline;
+ case VerticalAlignmentRunValues.Subscript:
+ return XLFontVerticalTextAlignmentValues.Subscript;
+ case VerticalAlignmentRunValues.Superscript:
+ return XLFontVerticalTextAlignmentValues.Superscript;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLFillPatternValues ToClosedXml(this PatternValues value)
+ {
+ switch (value)
+ {
+ case PatternValues.DarkDown:
+ return XLFillPatternValues.DarkDown;
+ case PatternValues.DarkGray:
+ return XLFillPatternValues.DarkGray;
+ case PatternValues.DarkGrid:
+ return XLFillPatternValues.DarkGrid;
+ case PatternValues.DarkHorizontal:
+ return XLFillPatternValues.DarkHorizontal;
+ case PatternValues.DarkTrellis:
+ return XLFillPatternValues.DarkTrellis;
+ case PatternValues.DarkUp:
+ return XLFillPatternValues.DarkUp;
+ case PatternValues.DarkVertical:
+ return XLFillPatternValues.DarkVertical;
+ case PatternValues.Gray0625:
+ return XLFillPatternValues.Gray0625;
+ case PatternValues.Gray125:
+ return XLFillPatternValues.Gray125;
+ case PatternValues.LightDown:
+ return XLFillPatternValues.LightDown;
+ case PatternValues.LightGray:
+ return XLFillPatternValues.LightGray;
+ case PatternValues.LightGrid:
+ return XLFillPatternValues.LightGrid;
+ case PatternValues.LightHorizontal:
+ return XLFillPatternValues.LightHorizontal;
+ case PatternValues.LightTrellis:
+ return XLFillPatternValues.LightTrellis;
+ case PatternValues.LightUp:
+ return XLFillPatternValues.LightUp;
+ case PatternValues.LightVertical:
+ return XLFillPatternValues.LightVertical;
+ case PatternValues.MediumGray:
+ return XLFillPatternValues.MediumGray;
+ case PatternValues.None:
+ return XLFillPatternValues.None;
+ case PatternValues.Solid:
+ return XLFillPatternValues.Solid;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLBorderStyleValues ToClosedXml(this BorderStyleValues value)
+ {
+ switch (value)
+ {
+ case BorderStyleValues.DashDot:
+ return XLBorderStyleValues.DashDot;
+ case BorderStyleValues.DashDotDot:
+ return XLBorderStyleValues.DashDotDot;
+ case BorderStyleValues.Dashed:
+ return XLBorderStyleValues.Dashed;
+ case BorderStyleValues.Dotted:
+ return XLBorderStyleValues.Dotted;
+ case BorderStyleValues.Double:
+ return XLBorderStyleValues.Double;
+ case BorderStyleValues.Hair:
+ return XLBorderStyleValues.Hair;
+ case BorderStyleValues.Medium:
+ return XLBorderStyleValues.Medium;
+ case BorderStyleValues.MediumDashDot:
+ return XLBorderStyleValues.MediumDashDot;
+ case BorderStyleValues.MediumDashDotDot:
+ return XLBorderStyleValues.MediumDashDotDot;
+ case BorderStyleValues.MediumDashed:
+ return XLBorderStyleValues.MediumDashed;
+ case BorderStyleValues.None:
+ return XLBorderStyleValues.None;
+ case BorderStyleValues.SlantDashDot:
+ return XLBorderStyleValues.SlantDashDot;
+ case BorderStyleValues.Thick:
+ return XLBorderStyleValues.Thick;
+ case BorderStyleValues.Thin:
+ return XLBorderStyleValues.Thin;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLAlignmentHorizontalValues ToClosedXml(this HorizontalAlignmentValues value)
+ {
+ switch (value)
+ {
+ case HorizontalAlignmentValues.Center:
+ return XLAlignmentHorizontalValues.Center;
+ case HorizontalAlignmentValues.CenterContinuous:
+ return XLAlignmentHorizontalValues.CenterContinuous;
+ case HorizontalAlignmentValues.Distributed:
+ return XLAlignmentHorizontalValues.Distributed;
+ case HorizontalAlignmentValues.Fill:
+ return XLAlignmentHorizontalValues.Fill;
+ case HorizontalAlignmentValues.General:
+ return XLAlignmentHorizontalValues.General;
+ case HorizontalAlignmentValues.Justify:
+ return XLAlignmentHorizontalValues.Justify;
+ case HorizontalAlignmentValues.Left:
+ return XLAlignmentHorizontalValues.Left;
+ case HorizontalAlignmentValues.Right:
+ return XLAlignmentHorizontalValues.Right;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLAlignmentVerticalValues ToClosedXml(this VerticalAlignmentValues value)
+ {
+ switch (value)
+ {
+ case VerticalAlignmentValues.Bottom:
+ return XLAlignmentVerticalValues.Bottom;
+ case VerticalAlignmentValues.Center:
+ return XLAlignmentVerticalValues.Center;
+ case VerticalAlignmentValues.Distributed:
+ return XLAlignmentVerticalValues.Distributed;
+ case VerticalAlignmentValues.Justify:
+ return XLAlignmentVerticalValues.Justify;
+ case VerticalAlignmentValues.Top:
+ return XLAlignmentVerticalValues.Top;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLPageOrderValues ToClosedXml(this PageOrderValues value)
+ {
+ switch (value)
+ {
+ case PageOrderValues.DownThenOver:
+ return XLPageOrderValues.DownThenOver;
+ case PageOrderValues.OverThenDown:
+ return XLPageOrderValues.OverThenDown;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLShowCommentsValues ToClosedXml(this CellCommentsValues value)
+ {
+ switch (value)
+ {
+ case CellCommentsValues.AsDisplayed:
+ return XLShowCommentsValues.AsDisplayed;
+ case CellCommentsValues.AtEnd:
+ return XLShowCommentsValues.AtEnd;
+ case CellCommentsValues.None:
+ return XLShowCommentsValues.None;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLPrintErrorValues ToClosedXml(this PrintErrorValues value)
+ {
+ switch (value)
+ {
+ case PrintErrorValues.Blank:
+ return XLPrintErrorValues.Blank;
+ case PrintErrorValues.Dash:
+ return XLPrintErrorValues.Dash;
+ case PrintErrorValues.Displayed:
+ return XLPrintErrorValues.Displayed;
+ case PrintErrorValues.NA:
+ return XLPrintErrorValues.NA;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLCalculateMode ToClosedXml(this CalculateModeValues value)
+ {
+ switch (value)
+ {
+ case CalculateModeValues.Auto:
+ return XLCalculateMode.Auto;
+ case CalculateModeValues.AutoNoTable:
+ return XLCalculateMode.AutoNoTable;
+ case CalculateModeValues.Manual:
+ return XLCalculateMode.Manual;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLReferenceStyle ToClosedXml(this ReferenceModeValues value)
+ {
+ switch (value)
+ {
+ case ReferenceModeValues.R1C1:
+ return XLReferenceStyle.R1C1;
+ case ReferenceModeValues.A1:
+ return XLReferenceStyle.A1;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLAlignmentReadingOrderValues ToClosedXml(this uint value)
+ {
+ switch (value)
+ {
+ case 0:
+ return XLAlignmentReadingOrderValues.ContextDependent;
+ case 1:
+ return XLAlignmentReadingOrderValues.LeftToRight;
+ case 2:
+ return XLAlignmentReadingOrderValues.RightToLeft;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLTotalsRowFunction ToClosedXml(this TotalsRowFunctionValues value)
+ {
+ switch (value)
+ {
+ case TotalsRowFunctionValues.None:
+ return XLTotalsRowFunction.None;
+ case TotalsRowFunctionValues.Sum:
+ return XLTotalsRowFunction.Sum;
+ case TotalsRowFunctionValues.Minimum:
+ return XLTotalsRowFunction.Minimum;
+ case TotalsRowFunctionValues.Maximum:
+ return XLTotalsRowFunction.Maximum;
+ case TotalsRowFunctionValues.Average:
+ return XLTotalsRowFunction.Average;
+ case TotalsRowFunctionValues.Count:
+ return XLTotalsRowFunction.Count;
+ case TotalsRowFunctionValues.CountNumbers:
+ return XLTotalsRowFunction.CountNumbers;
+ case TotalsRowFunctionValues.StandardDeviation:
+ return XLTotalsRowFunction.StandardDeviation;
+ case TotalsRowFunctionValues.Variance:
+ return XLTotalsRowFunction.Variance;
+ case TotalsRowFunctionValues.Custom:
+ return XLTotalsRowFunction.Custom;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLAllowedValues ToClosedXml(this DataValidationValues value)
+ {
+ switch (value)
+ {
+ case DataValidationValues.None:
+ return XLAllowedValues.AnyValue;
+ case DataValidationValues.Custom:
+ return XLAllowedValues.Custom;
+ case DataValidationValues.Date:
+ return XLAllowedValues.Date;
+ case DataValidationValues.Decimal:
+ return XLAllowedValues.Decimal;
+ case DataValidationValues.List:
+ return XLAllowedValues.List;
+ case DataValidationValues.TextLength:
+ return XLAllowedValues.TextLength;
+ case DataValidationValues.Time:
+ return XLAllowedValues.Time;
+ case DataValidationValues.Whole:
+ return XLAllowedValues.WholeNumber;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLErrorStyle ToClosedXml(this DataValidationErrorStyleValues value)
+ {
+ switch (value)
+ {
+ case DataValidationErrorStyleValues.Information:
+ return XLErrorStyle.Information;
+ case DataValidationErrorStyleValues.Warning:
+ return XLErrorStyle.Warning;
+ case DataValidationErrorStyleValues.Stop:
+ return XLErrorStyle.Stop;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLOperator ToClosedXml(this DataValidationOperatorValues value)
+ {
+ switch (value)
+ {
+ case DataValidationOperatorValues.Between:
+ return XLOperator.Between;
+ case DataValidationOperatorValues.GreaterThanOrEqual:
+ return XLOperator.EqualOrGreaterThan;
+ case DataValidationOperatorValues.LessThanOrEqual:
+ return XLOperator.EqualOrLessThan;
+ case DataValidationOperatorValues.Equal:
+ return XLOperator.EqualTo;
+ case DataValidationOperatorValues.GreaterThan:
+ return XLOperator.GreaterThan;
+ case DataValidationOperatorValues.LessThan:
+ return XLOperator.LessThan;
+ case DataValidationOperatorValues.NotBetween:
+ return XLOperator.NotBetween;
+ case DataValidationOperatorValues.NotEqual:
+ return XLOperator.NotEqualTo;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ public static XLWorksheetVisibility ToClosedXml(this SheetStateValues value)
+ {
+ switch (value)
+ {
+ case SheetStateValues.Visible:
+ return XLWorksheetVisibility.Visible;
+ case SheetStateValues.Hidden:
+ return XLWorksheetVisibility.Hidden;
+ case SheetStateValues.VeryHidden:
+ return XLWorksheetVisibility.VeryHidden;
+ #region default
+ default:
+ throw new ApplicationException("Not implemented value!");
+ #endregion
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/IXLWorksheet.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/IXLWorksheet.cs
index bf3cf56..a8c6061 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/IXLWorksheet.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/IXLWorksheet.cs
@@ -310,5 +310,12 @@
IXLColor TabColor { get; set; }
IXLWorksheet SetTabColor(IXLColor color);
+
+ Boolean TabSelected { get; set; }
+ Boolean TabActive { get; set; }
+
+ IXLWorksheet SetTabSelected(); IXLWorksheet SetTabSelected(Boolean value);
+ IXLWorksheet SetTabActive(); IXLWorksheet SetTabActive(Boolean value);
+
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs
index 26de988..9f7b4d8 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs
@@ -933,7 +933,16 @@
public IXLRange RangeUsed()
{
- return Worksheet.Range(this.FirstCellUsed(), this.LastCellUsed());
+ var firstCell = FirstCellUsed();
+ if (firstCell == null)
+ {
+ return null;
+ }
+ else
+ {
+ var lastCell = LastCellUsed();
+ return Worksheet.Range(firstCell, lastCell);
+ }
}
public Boolean ShareString
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/IXLRow.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/IXLRow.cs
index d5ce2cd..196ecad 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/IXLRow.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/IXLRow.cs
@@ -171,5 +171,10 @@
IXLRangeRow Row(Int32 start, Int32 end);
IXLRangeRows Rows(String columns);
+
+ ///
+ /// Adds a horizontal page break after this row.
+ ///
+ IXLRow AddHorizontalPageBreak();
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/IXLRows.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/IXLRows.cs
index 13ae711..9c08ff5 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/IXLRows.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/IXLRows.cs
@@ -109,6 +109,9 @@
IXLStyle Style { get; set; }
-
+ ///
+ /// Adds a horizontal page break after these rows.
+ ///
+ IXLRows AddHorizontalPageBreaks();
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRow.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRow.cs
index b0b45c4..063d4c5 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRow.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRow.cs
@@ -702,5 +702,11 @@
}
return retVal;
}
+
+ public IXLRow AddHorizontalPageBreak()
+ {
+ Worksheet.PageSetup.AddHorizontalPageBreak(this.RowNumber());
+ return this;
+ }
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRows.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRows.cs
index 8359e42..b3565c1 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRows.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Rows/XLRows.cs
@@ -247,6 +247,13 @@
}
}
-
+ public IXLRows AddHorizontalPageBreaks()
+ {
+ foreach (var row in rows)
+ {
+ row.Worksheet.PageSetup.AddHorizontalPageBreak(row.RowNumber());
+ }
+ return this;
+ }
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs
index b59cebd..66fc193 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs
@@ -24,7 +24,6 @@
Worksheets = new XLWorksheets(this);
NamedRanges = new XLNamedRanges(this);
CustomProperties = new XLCustomProperties(this);
- PopulateEnums();
Style = new XLStyle(null, DefaultStyle);
RowHeight = DefaultRowHeight;
ColumnWidth = DefaultColumnWidth;
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs
index c7e57d7..d246ad8 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs
@@ -74,13 +74,13 @@
var referenceMode = dSpreadsheet.WorkbookPart.Workbook.CalculationProperties.ReferenceMode;
if (referenceMode != null)
{
- ReferenceStyle = referenceModeValues.Single(p => p.Value == referenceMode.Value).Key;
+ ReferenceStyle = referenceMode.Value.ToClosedXml();
}
var calculateMode = dSpreadsheet.WorkbookPart.Workbook.CalculationProperties.CalculationMode;
if (calculateMode != null)
{
- CalculateMode = calculateModeValues.Single(p => p.Value == calculateMode.Value).Key;
+ CalculateMode = calculateMode.Value.ToClosedXml();
}
if (dSpreadsheet.ExtendedFilePropertiesPart.Properties.Elements().Count() > 0)
@@ -114,8 +114,9 @@
ws.RelId = dSheet.Id;
ws.SheetId = (Int32)dSheet.SheetId.Value;
+
if (dSheet.State != null)
- ws.Visibility = sheetStateValues.Single(p => p.Value == dSheet.State).Key;
+ ws.Visibility = dSheet.State.Value.ToClosedXml();
var sheetFormatProperties = worksheetPart.Worksheet.SheetFormatProperties;
if (sheetFormatProperties != null)
@@ -373,7 +374,7 @@
{
var tableColumn = (TableColumn)column;
if (tableColumn.TotalsRowFunction != null)
- xlTable.Field(tableColumn.Name.Value).TotalsRowFunction = totalsRowFunctionValues.Single(p => p.Value == tableColumn.TotalsRowFunction.Value).Key;
+ xlTable.Field(tableColumn.Name.Value).TotalsRowFunction = tableColumn.TotalsRowFunction.Value.ToClosedXml();
if (tableColumn.TotalsRowFormula != null)
xlTable.Field(tableColumn.Name.Value).TotalsRowFormulaA1 = tableColumn.TotalsRowFormula.Text;
@@ -408,6 +409,11 @@
}
var workbook = (Workbook)dSpreadsheet.WorkbookPart.Workbook;
+
+ var workbookView = (WorkbookView)workbook.BookViews.FirstOrDefault();
+ if (workbookView != null && workbookView.ActiveTab != null)
+ Worksheet((Int32)(workbookView.ActiveTab.Value + 1)).SetTabActive();
+
if (workbook.DefinedNames != null)
{
foreach (DefinedName definedName in workbook.DefinedNames)
@@ -528,9 +534,9 @@
if (dvs.Prompt != null) dvt.InputMessage = dvs.Prompt;
if (dvs.ErrorTitle != null) dvt.ErrorTitle = dvs.ErrorTitle;
if (dvs.Error != null) dvt.ErrorMessage = dvs.Error;
- if (dvs.ErrorStyle != null) dvt.ErrorStyle = dataValidationErrorStyleValues.Single(p => p.Value == dvs.ErrorStyle).Key;
- if (dvs.Type != null) dvt.AllowedValues = dataValidationValues.Single(p => p.Value == dvs.Type).Key;
- if (dvs.Operator != null) dvt.Operator = dataValidationOperatorValues.Single(p => p.Value == dvs.Operator).Key;
+ if (dvs.ErrorStyle != null) dvt.ErrorStyle = dvs.ErrorStyle.Value.ToClosedXml();
+ if (dvs.Type != null) dvt.AllowedValues = dvs.Type.Value.ToClosedXml();
+ if (dvs.Operator != null) dvt.Operator = dvs.Operator.Value.ToClosedXml();
if (dvs.Formula1 != null) dvt.MinValue = dvs.Formula1.Text;
if (dvs.Formula2 != null) dvt.MaxValue = dvs.Formula2.Text;
}
@@ -679,17 +685,17 @@
ws.PageSetup.PagesTall = Int32.Parse(pageSetup.FitToHeight.InnerText);
}
if (pageSetup.PageOrder != null)
- ws.PageSetup.PageOrder = pageOrderValues.Single(p => p.Value == pageSetup.PageOrder).Key;
+ ws.PageSetup.PageOrder = pageSetup.PageOrder.Value.ToClosedXml();
if (pageSetup.Orientation != null)
- ws.PageSetup.PageOrientation = pageOrientationValues.Single(p => p.Value == pageSetup.Orientation).Key;
+ ws.PageSetup.PageOrientation = pageSetup.Orientation.Value.ToClosedXml();
if (pageSetup.BlackAndWhite != null)
ws.PageSetup.BlackAndWhite = pageSetup.BlackAndWhite;
if (pageSetup.Draft != null)
ws.PageSetup.DraftQuality = pageSetup.Draft;
if (pageSetup.CellComments != null)
- ws.PageSetup.ShowComments = showCommentsValues.Single(sc => sc.Value == pageSetup.CellComments).Key;
+ ws.PageSetup.ShowComments = pageSetup.CellComments.Value.ToClosedXml();
if (pageSetup.Errors != null)
- ws.PageSetup.PrintErrorValue = printErrorValues.Single(p => p.Value == pageSetup.Errors).Key;
+ ws.PageSetup.PrintErrorValue = pageSetup.Errors.Value.ToClosedXml();
if (pageSetup.HorizontalDpi != null) ws.PageSetup.HorizontalDpi = (Int32)pageSetup.HorizontalDpi.Value;
if (pageSetup.VerticalDpi != null) ws.PageSetup.VerticalDpi = (Int32)pageSetup.VerticalDpi.Value;
if (pageSetup.FirstPageNumber != null) ws.PageSetup.FirstPageNumber = Int32.Parse(pageSetup.FirstPageNumber.InnerText);
@@ -747,6 +753,7 @@
if (sheetView.ShowRuler != null) ws.ShowRuler = sheetView.ShowRuler.Value;
if (sheetView.ShowWhiteSpace != null) ws.ShowWhiteSpace = sheetView.ShowWhiteSpace.Value;
if (sheetView.ShowZeros != null) ws.ShowZeros = sheetView.ShowZeros.Value;
+ if (sheetView.TabSelected != null) ws.TabSelected = sheetView.TabSelected.Value;
var pane = (Pane)sheetView.Elements().FirstOrDefault();
if (pane != null)
@@ -841,7 +848,7 @@
if (fill.PatternFill != null)
{
if (fill.PatternFill.PatternType != null)
- xlStylized.InnerStyle.Fill.PatternType = fillPatternValues.Single(p => p.Value == fill.PatternFill.PatternType).Key;
+ xlStylized.InnerStyle.Fill.PatternType = fill.PatternFill.PatternType.Value.ToClosedXml();
var fgColor = GetColor(fill.PatternFill.ForegroundColor);
if (fgColor.HasValue) xlStylized.InnerStyle.Fill.PatternColor = fgColor;
@@ -861,7 +868,7 @@
if (alignment != null)
{
if (alignment.Horizontal != null)
- xlStylized.InnerStyle.Alignment.Horizontal = alignmentHorizontalValues.Single(a => a.Value == alignment.Horizontal).Key;
+ xlStylized.InnerStyle.Alignment.Horizontal = alignment.Horizontal.Value.ToClosedXml();
if (alignment.Indent != null)
xlStylized.InnerStyle.Alignment.Indent = Int32.Parse(alignment.Indent.ToString());
if (alignment.JustifyLastLine != null)
@@ -875,7 +882,7 @@
if (alignment.TextRotation != null)
xlStylized.InnerStyle.Alignment.TextRotation = (Int32)alignment.TextRotation.Value;
if (alignment.Vertical != null)
- xlStylized.InnerStyle.Alignment.Vertical = alignmentVerticalValues.Single(a => a.Value == alignment.Vertical).Key;
+ xlStylized.InnerStyle.Alignment.Vertical = alignment.Vertical.Value.ToClosedXml();
if (alignment.WrapText !=null)
xlStylized.InnerStyle.Alignment.WrapText = alignment.WrapText;
}
@@ -892,7 +899,7 @@
if (bottomBorder != null)
{
if (bottomBorder.Style != null)
- xlStylized.InnerStyle.Border.BottomBorder = borderStyleValues.Single(b => b.Value == bottomBorder.Style.Value).Key;
+ xlStylized.InnerStyle.Border.BottomBorder = bottomBorder.Style.Value.ToClosedXml();
var bottomBorderColor = GetColor(bottomBorder.Color);
if (bottomBorderColor.HasValue)
@@ -902,7 +909,7 @@
if (topBorder != null)
{
if (topBorder.Style != null)
- xlStylized.InnerStyle.Border.TopBorder = borderStyleValues.Single(b => b.Value == topBorder.Style.Value).Key;
+ xlStylized.InnerStyle.Border.TopBorder = topBorder.Style.Value.ToClosedXml();
var topBorderColor = GetColor(topBorder.Color);
if (topBorderColor.HasValue)
xlStylized.InnerStyle.Border.TopBorderColor = topBorderColor;
@@ -911,7 +918,7 @@
if (leftBorder != null)
{
if (leftBorder.Style != null)
- xlStylized.InnerStyle.Border.LeftBorder = borderStyleValues.Single(b => b.Value == leftBorder.Style.Value).Key;
+ xlStylized.InnerStyle.Border.LeftBorder = leftBorder.Style.Value.ToClosedXml();
var leftBorderColor = GetColor(leftBorder.Color);
if (leftBorderColor.HasValue)
xlStylized.InnerStyle.Border.LeftBorderColor = leftBorderColor;
@@ -920,7 +927,7 @@
if (rightBorder != null)
{
if (rightBorder.Style != null)
- xlStylized.InnerStyle.Border.RightBorder = borderStyleValues.Single(b => b.Value == rightBorder.Style.Value).Key;
+ xlStylized.InnerStyle.Border.RightBorder = rightBorder.Style.Value.ToClosedXml();
var rightBorderColor = GetColor(rightBorder.Color);
if (rightBorderColor.HasValue)
xlStylized.InnerStyle.Border.RightBorderColor = rightBorderColor;
@@ -929,7 +936,7 @@
if (diagonalBorder != null)
{
if (diagonalBorder.Style != null)
- xlStylized.InnerStyle.Border.DiagonalBorder = borderStyleValues.Single(b => b.Value == diagonalBorder.Style.Value).Key;
+ xlStylized.InnerStyle.Border.DiagonalBorder = diagonalBorder.Style.Value.ToClosedXml();
var diagonalBorderColor = GetColor(diagonalBorder.Color);
if (diagonalBorderColor.HasValue)
xlStylized.InnerStyle.Border.DiagonalBorderColor = diagonalBorderColor;
@@ -972,14 +979,14 @@
if (font.Underline != null)
if (font.Underline.Val != null)
- xlStylized.InnerStyle.Font.Underline = underlineValuesList.Single(u => u.Value == ((Underline)font.Underline).Val).Key;
+ xlStylized.InnerStyle.Font.Underline = ((Underline)font.Underline).Val.Value.ToClosedXml();
else
xlStylized.InnerStyle.Font.Underline = XLFontUnderlineValues.Single;
if (font.VerticalTextAlignment != null)
if (font.VerticalTextAlignment.Val != null)
- xlStylized.InnerStyle.Font.VerticalAlignment = fontVerticalTextAlignmentValues.Single(f => f.Value == ((VerticalTextAlignment)font.VerticalTextAlignment).Val).Key;
+ xlStylized.InnerStyle.Font.VerticalAlignment = ((VerticalTextAlignment)font.VerticalTextAlignment).Val.Value.ToClosedXml();
else
xlStylized.InnerStyle.Font.VerticalAlignment = XLFontVerticalTextAlignmentValues.Baseline;
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs
index c5836c7..ff2805a 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs
@@ -22,52 +22,7 @@
{
private const Double COLUMN_WIDTH_OFFSET = 0.71;
- private List> fillPatternValues = new List>();
- private List> alignmentHorizontalValues = new List>();
- private List> alignmentVerticalValues = new List>();
- private List> borderStyleValues = new List>();
- private List> underlineValuesList = new List>();
- private List> fontVerticalTextAlignmentValues = new List>();
- private List> pageOrderValues = new List>();
- private List> pageOrientationValues = new List>();
- private List> showCommentsValues = new List>();
- private List> printErrorValues = new List>();
- private List> calculateModeValues = new List>();
- private List> referenceModeValues = new List>();
- private List> alignmentReadingOrderValues = new List>();
- private List> totalsRowFunctionValues = new List>();
- private List> dataValidationValues = new List>();
- private List> dataValidationErrorStyleValues = new List>();
- private List> dataValidationOperatorValues = new List>();
- private List> sheetStateValues = new List>();
-
- private Boolean populated = false;
- private void PopulateEnums()
- {
- if (!populated)
- {
- PopulateFillPatternValues();
- PopulateAlignmentHorizontalValues();
- PopulateAlignmentVerticalValues();
- PupulateBorderStyleValues();
- PopulateUnderlineValues();
- PopulateFontVerticalTextAlignmentValues();
- PopulatePageOrderValues();
- PopulatePageOrientationValues();
- PopulateShowCommentsValues();
- PopulatePrintErrorValues();
- PopulateCalculateModeValues();
- PopulateReferenceModeValues();
- PopulateAlignmentReadingOrderValues();
- PopulateTotalsRowFunctionValues();
- PopulateDataValidationValues();
- PopulateDataValidationErrorStyleValues();
- PopulateDataValidationOperatorValues();
- PopulateSheetStateValues();
- populated = true;
- }
- }
-
+
private enum RelType { General, Workbook, Worksheet, Drawing }
private class RelIdGenerator
{
@@ -135,191 +90,6 @@
}
}
- #region Pouplate Values
- private void PopulateUnderlineValues()
- {
-
- underlineValuesList.Add(new KeyValuePair(XLFontUnderlineValues.Double, UnderlineValues.Double));
- underlineValuesList.Add(new KeyValuePair(XLFontUnderlineValues.DoubleAccounting, UnderlineValues.DoubleAccounting));
- underlineValuesList.Add(new KeyValuePair(XLFontUnderlineValues.None, UnderlineValues.None));
- underlineValuesList.Add(new KeyValuePair(XLFontUnderlineValues.Single, UnderlineValues.Single));
- underlineValuesList.Add(new KeyValuePair(XLFontUnderlineValues.SingleAccounting, UnderlineValues.SingleAccounting));
- }
-
- private void PopulatePageOrientationValues()
- {
- pageOrientationValues.Add(new KeyValuePair(XLPageOrientation.Default, OrientationValues.Default));
- pageOrientationValues.Add(new KeyValuePair(XLPageOrientation.Landscape, OrientationValues.Landscape));
- pageOrientationValues.Add(new KeyValuePair(XLPageOrientation.Portrait, OrientationValues.Portrait));
- }
-
- private void PopulateFontVerticalTextAlignmentValues()
- {
- fontVerticalTextAlignmentValues.Add(new KeyValuePair(XLFontVerticalTextAlignmentValues.Baseline, VerticalAlignmentRunValues.Baseline));
- fontVerticalTextAlignmentValues.Add(new KeyValuePair(XLFontVerticalTextAlignmentValues.Subscript, VerticalAlignmentRunValues.Subscript));
- fontVerticalTextAlignmentValues.Add(new KeyValuePair(XLFontVerticalTextAlignmentValues.Superscript, VerticalAlignmentRunValues.Superscript));
- }
-
- private void PopulateFillPatternValues()
- {
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.DarkDown, PatternValues.DarkDown));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.DarkGray, PatternValues.DarkGray));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.DarkGrid, PatternValues.DarkGrid));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.DarkHorizontal, PatternValues.DarkHorizontal));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.DarkTrellis, PatternValues.DarkTrellis));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.DarkUp, PatternValues.DarkUp));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.DarkVertical, PatternValues.DarkVertical));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.Gray0625, PatternValues.Gray0625));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.Gray125, PatternValues.Gray125));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.LightDown, PatternValues.LightDown));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.LightGray, PatternValues.LightGray));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.LightGrid, PatternValues.LightGrid));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.LightHorizontal, PatternValues.LightHorizontal));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.LightTrellis, PatternValues.LightTrellis));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.LightUp, PatternValues.LightUp));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.LightVertical, PatternValues.LightVertical));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.MediumGray, PatternValues.MediumGray));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.None, PatternValues.None));
- fillPatternValues.Add(new KeyValuePair(XLFillPatternValues.Solid, PatternValues.Solid));
- }
-
- private void PupulateBorderStyleValues()
- {
-
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.DashDot, BorderStyleValues.DashDot));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.DashDotDot, BorderStyleValues.DashDotDot));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.Dashed, BorderStyleValues.Dashed));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.Dotted, BorderStyleValues.Dotted));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.Double, BorderStyleValues.Double));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.Hair, BorderStyleValues.Hair));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.Medium, BorderStyleValues.Medium));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.MediumDashDot, BorderStyleValues.MediumDashDot));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.MediumDashDotDot, BorderStyleValues.MediumDashDotDot));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.MediumDashed, BorderStyleValues.MediumDashed));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.None, BorderStyleValues.None));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.SlantDashDot, BorderStyleValues.SlantDashDot));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.Thick, BorderStyleValues.Thick));
- borderStyleValues.Add(new KeyValuePair(XLBorderStyleValues.Thin, BorderStyleValues.Thin));
-
- }
-
- private void PopulateAlignmentHorizontalValues()
- {
- alignmentHorizontalValues.Add(new KeyValuePair(XLAlignmentHorizontalValues.Center, HorizontalAlignmentValues.Center));
- alignmentHorizontalValues.Add(new KeyValuePair(XLAlignmentHorizontalValues.CenterContinuous, HorizontalAlignmentValues.CenterContinuous));
- alignmentHorizontalValues.Add(new KeyValuePair(XLAlignmentHorizontalValues.Distributed, HorizontalAlignmentValues.Distributed));
- alignmentHorizontalValues.Add(new KeyValuePair(XLAlignmentHorizontalValues.Fill, HorizontalAlignmentValues.Fill));
- alignmentHorizontalValues.Add(new KeyValuePair(XLAlignmentHorizontalValues.General, HorizontalAlignmentValues.General));
- alignmentHorizontalValues.Add(new KeyValuePair(XLAlignmentHorizontalValues.Justify, HorizontalAlignmentValues.Justify));
- alignmentHorizontalValues.Add(new KeyValuePair(XLAlignmentHorizontalValues.Left, HorizontalAlignmentValues.Left));
- alignmentHorizontalValues.Add(new KeyValuePair(XLAlignmentHorizontalValues.Right, HorizontalAlignmentValues.Right));
- }
-
- private void PopulateAlignmentVerticalValues()
- {
-
- alignmentVerticalValues.Add(new KeyValuePair(XLAlignmentVerticalValues.Bottom, VerticalAlignmentValues.Bottom));
- alignmentVerticalValues.Add(new KeyValuePair(XLAlignmentVerticalValues.Center, VerticalAlignmentValues.Center));
- alignmentVerticalValues.Add(new KeyValuePair(XLAlignmentVerticalValues.Distributed, VerticalAlignmentValues.Distributed));
- alignmentVerticalValues.Add(new KeyValuePair(XLAlignmentVerticalValues.Justify, VerticalAlignmentValues.Justify));
- alignmentVerticalValues.Add(new KeyValuePair(XLAlignmentVerticalValues.Top, VerticalAlignmentValues.Top));
- }
-
- private void PopulatePageOrderValues()
- {
- pageOrderValues.Add(new KeyValuePair(XLPageOrderValues.DownThenOver, PageOrderValues.DownThenOver));
- pageOrderValues.Add(new KeyValuePair(XLPageOrderValues.OverThenDown, PageOrderValues.OverThenDown));
- }
-
- private void PopulateShowCommentsValues()
- {
- showCommentsValues.Add(new KeyValuePair(XLShowCommentsValues.AsDisplayed, CellCommentsValues.AsDisplayed));
- showCommentsValues.Add(new KeyValuePair(XLShowCommentsValues.AtEnd, CellCommentsValues.AtEnd));
- showCommentsValues.Add(new KeyValuePair(XLShowCommentsValues.None, CellCommentsValues.None));
- }
-
- private void PopulatePrintErrorValues()
- {
- printErrorValues.Add(new KeyValuePair(XLPrintErrorValues.Blank, PrintErrorValues.Blank));
- printErrorValues.Add(new KeyValuePair(XLPrintErrorValues.Dash, PrintErrorValues.Dash));
- printErrorValues.Add(new KeyValuePair(XLPrintErrorValues.Displayed, PrintErrorValues.Displayed));
- printErrorValues.Add(new KeyValuePair(XLPrintErrorValues.NA, PrintErrorValues.NA));
- }
-
- private void PopulateCalculateModeValues()
- {
- calculateModeValues.Add(new KeyValuePair(XLCalculateMode.Auto, CalculateModeValues.Auto)) ;
- calculateModeValues.Add(new KeyValuePair(XLCalculateMode.AutoNoTable, CalculateModeValues.AutoNoTable));
- calculateModeValues.Add(new KeyValuePair(XLCalculateMode.Manual, CalculateModeValues.Manual));
- }
-
- private void PopulateReferenceModeValues()
- {
- referenceModeValues.Add(new KeyValuePair(XLReferenceStyle.R1C1, ReferenceModeValues.R1C1));
- referenceModeValues.Add(new KeyValuePair(XLReferenceStyle.A1, ReferenceModeValues.A1));
- }
-
- private void PopulateAlignmentReadingOrderValues()
- {
- alignmentReadingOrderValues.Add(new KeyValuePair(XLAlignmentReadingOrderValues.ContextDependent, 0));
- alignmentReadingOrderValues.Add(new KeyValuePair(XLAlignmentReadingOrderValues.LeftToRight, 1));
- alignmentReadingOrderValues.Add(new KeyValuePair(XLAlignmentReadingOrderValues.RightToLeft, 2));
- }
-
- private void PopulateTotalsRowFunctionValues()
- {
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.None, TotalsRowFunctionValues.None));
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.Sum, TotalsRowFunctionValues.Sum));
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.Minimum, TotalsRowFunctionValues.Minimum));
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.Maximum, TotalsRowFunctionValues.Maximum));
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.Average, TotalsRowFunctionValues.Average));
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.Count, TotalsRowFunctionValues.Count));
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.CountNumbers, TotalsRowFunctionValues.CountNumbers));
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.StandardDeviation, TotalsRowFunctionValues.StandardDeviation));
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.Variance, TotalsRowFunctionValues.Variance));
- totalsRowFunctionValues.Add(new KeyValuePair(XLTotalsRowFunction.Custom, TotalsRowFunctionValues.Custom));
- }
-
- private void PopulateDataValidationValues()
- {
- dataValidationValues.Add(new KeyValuePair(XLAllowedValues.AnyValue, DataValidationValues.None));
- dataValidationValues.Add(new KeyValuePair(XLAllowedValues.Custom, DataValidationValues.Custom));
- dataValidationValues.Add(new KeyValuePair(XLAllowedValues.Date, DataValidationValues.Date));
- dataValidationValues.Add(new KeyValuePair(XLAllowedValues.Decimal, DataValidationValues.Decimal));
- dataValidationValues.Add(new KeyValuePair(XLAllowedValues.List, DataValidationValues.List));
- dataValidationValues.Add(new KeyValuePair(XLAllowedValues.TextLength, DataValidationValues.TextLength));
- dataValidationValues.Add(new KeyValuePair(XLAllowedValues.Time, DataValidationValues.Time));
- dataValidationValues.Add(new KeyValuePair(XLAllowedValues.WholeNumber, DataValidationValues.Whole));
- }
-
- private void PopulateDataValidationErrorStyleValues()
- {
- dataValidationErrorStyleValues.Add(new KeyValuePair(XLErrorStyle.Information, DataValidationErrorStyleValues.Information));
- dataValidationErrorStyleValues.Add(new KeyValuePair(XLErrorStyle.Warning, DataValidationErrorStyleValues.Warning));
- dataValidationErrorStyleValues.Add(new KeyValuePair(XLErrorStyle.Stop, DataValidationErrorStyleValues.Stop));
- }
-
- private void PopulateDataValidationOperatorValues()
- {
- dataValidationOperatorValues.Add(new KeyValuePair(XLOperator.Between, DataValidationOperatorValues.Between));
- dataValidationOperatorValues.Add(new KeyValuePair(XLOperator.EqualOrGreaterThan , DataValidationOperatorValues.GreaterThanOrEqual ));
- dataValidationOperatorValues.Add(new KeyValuePair(XLOperator.EqualOrLessThan, DataValidationOperatorValues.LessThanOrEqual));
- dataValidationOperatorValues.Add(new KeyValuePair(XLOperator.EqualTo, DataValidationOperatorValues.Equal));
- dataValidationOperatorValues.Add(new KeyValuePair(XLOperator.GreaterThan, DataValidationOperatorValues.GreaterThan));
- dataValidationOperatorValues.Add(new KeyValuePair(XLOperator.LessThan, DataValidationOperatorValues.LessThan));
- dataValidationOperatorValues.Add(new KeyValuePair(XLOperator.NotBetween, DataValidationOperatorValues.NotBetween));
- dataValidationOperatorValues.Add(new KeyValuePair(XLOperator.NotEqualTo, DataValidationOperatorValues.NotEqual));
- }
-
- private void PopulateSheetStateValues()
- {
- sheetStateValues.Add(new KeyValuePair(XLWorksheetVisibility.Visible, SheetStateValues.Visible));
- sheetStateValues.Add(new KeyValuePair(XLWorksheetVisibility.Hidden, SheetStateValues.Hidden));
- sheetStateValues.Add(new KeyValuePair(XLWorksheetVisibility.VeryHidden, SheetStateValues.VeryHidden));
- }
-
- #endregion
-
private void CreatePackage(String filePath)
{
SpreadsheetDocument package;
@@ -680,9 +450,9 @@
Id = rId,
SheetId = (UInt32)xlSheet.SheetId
};
-
+
if (xlSheet.Visibility != XLWorksheetVisibility.Visible)
- newSheet.State = sheetStateValues.Single(p => p.Key == xlSheet.Visibility).Value;
+ newSheet.State = xlSheet.Visibility.ToOpenXml();
workbook.Sheets.Append(newSheet);
}
@@ -708,15 +478,24 @@
WorkbookView workbookView = workbook.BookViews.Elements().FirstOrDefault();
+ UInt32 activeTab = firstSheetVisible;
+ foreach (var ws in worksheets)
+ {
+ if (ws.TabActive)
+ {
+ activeTab = (UInt32)(ws.Position - 1);
+ break;
+ }
+ }
if (workbookView == null)
{
- workbookView = new WorkbookView() { ActiveTab = firstSheetVisible, FirstSheet = firstSheetVisible };
+ workbookView = new WorkbookView() { ActiveTab = activeTab, FirstSheet = firstSheetVisible };
workbook.BookViews.Append(workbookView);
}
else
{
- workbookView.ActiveTab = firstSheetVisible;
+ workbookView.ActiveTab = activeTab;
workbookView.FirstSheet = firstSheetVisible;
}
@@ -837,13 +616,13 @@
if (CalculateMode == XLCalculateMode.Default)
workbook.CalculationProperties.CalculationMode = null;
else
- workbook.CalculationProperties.CalculationMode = calculateModeValues.Single(p => p.Key == CalculateMode).Value;
+ workbook.CalculationProperties.CalculationMode = CalculateMode.ToOpenXml();
if (ReferenceStyle == XLReferenceStyle.Default)
workbook.CalculationProperties.ReferenceMode = null;
else
- workbook.CalculationProperties.ReferenceMode = referenceModeValues.Single(p => p.Key == ReferenceStyle).Value;
+ workbook.CalculationProperties.ReferenceMode = ReferenceStyle.ToOpenXml();
}
@@ -1058,8 +837,8 @@
cellFormat.FormatId = (UInt32)formatId;
Alignment alignment = new Alignment()
{
- Horizontal = alignmentHorizontalValues.Single(a => a.Key == styleInfo.Style.Alignment.Horizontal).Value,
- Vertical = alignmentVerticalValues.Single(a => a.Key == styleInfo.Style.Alignment.Vertical).Value,
+ Horizontal = styleInfo.Style.Alignment.Horizontal.ToOpenXml(),
+ Vertical = styleInfo.Style.Alignment.Vertical.ToOpenXml(),
Indent = (UInt32)styleInfo.Style.Alignment.Indent,
ReadingOrder = (UInt32)styleInfo.Style.Alignment.ReadingOrder,
WrapText = styleInfo.Style.Alignment.WrapText,
@@ -1117,18 +896,18 @@
private Boolean ApplyFill(StyleInfo styleInfo)
{
- return fillPatternValues.Single(p => p.Key == styleInfo.Style.Fill.PatternType).Value == PatternValues.None;
+ return styleInfo.Style.Fill.PatternType.ToOpenXml() == PatternValues.None;
}
private Boolean ApplyBorder(StyleInfo styleInfo)
{
IXLBorder opBorder = styleInfo.Style.Border;
return (
- borderStyleValues.Single(b => b.Key == opBorder.BottomBorder).Value != BorderStyleValues.None
- || borderStyleValues.Single(b => b.Key == opBorder.DiagonalBorder).Value != BorderStyleValues.None
- || borderStyleValues.Single(b => b.Key == opBorder.RightBorder).Value != BorderStyleValues.None
- || borderStyleValues.Single(b => b.Key == opBorder.LeftBorder).Value != BorderStyleValues.None
- || borderStyleValues.Single(b => b.Key == opBorder.TopBorder).Value != BorderStyleValues.None);
+ opBorder.BottomBorder.ToOpenXml() != BorderStyleValues.None
+ || opBorder.DiagonalBorder.ToOpenXml() != BorderStyleValues.None
+ || opBorder.RightBorder.ToOpenXml() != BorderStyleValues.None
+ || opBorder.LeftBorder.ToOpenXml() != BorderStyleValues.None
+ || opBorder.TopBorder.ToOpenXml() != BorderStyleValues.None);
}
private Boolean ApplyProtection(StyleInfo styleInfo)
@@ -1187,13 +966,13 @@
if (alignment != null)
{
if (alignment.Horizontal != null)
- a.Horizontal = alignmentHorizontalValues.Single(p => p.Value == alignment.Horizontal.Value).Key;
+ a.Horizontal = alignment.Horizontal.Value.ToClosedXml();
if (alignment.Vertical != null)
- a.Vertical = alignmentVerticalValues.Single(p => p.Value == alignment.Vertical.Value).Key;
+ a.Vertical = alignment.Vertical.Value.ToClosedXml();
if (alignment.Indent != null)
a.Indent = (Int32)alignment.Indent.Value;
if (alignment.ReadingOrder != null)
- a.ReadingOrder = alignmentReadingOrderValues.Single(p => p.Value == alignment.ReadingOrder.Value).Key;
+ a.ReadingOrder = alignment.ReadingOrder.Value.ToClosedXml();
if (alignment.WrapText != null)
a.WrapText = alignment.WrapText.Value;
if (alignment.TextRotation != null)
@@ -1242,27 +1021,27 @@
{
Border border = new Border() { DiagonalUp = borderInfo.Border.DiagonalUp, DiagonalDown = borderInfo.Border.DiagonalDown };
- LeftBorder leftBorder = new LeftBorder() { Style = borderStyleValues.Single(b => b.Key == borderInfo.Border.LeftBorder).Value };
+ LeftBorder leftBorder = new LeftBorder() { Style = borderInfo.Border.LeftBorder.ToOpenXml() };
Color leftBorderColor = GetNewColor(borderInfo.Border.LeftBorderColor);
leftBorder.Append(leftBorderColor);
border.Append(leftBorder);
- RightBorder rightBorder = new RightBorder() { Style = borderStyleValues.Single(b => b.Key == borderInfo.Border.RightBorder).Value };
+ RightBorder rightBorder = new RightBorder() { Style = borderInfo.Border.RightBorder.ToOpenXml() };
Color rightBorderColor = GetNewColor(borderInfo.Border.RightBorderColor);
rightBorder.Append(rightBorderColor);
border.Append(rightBorder);
- TopBorder topBorder = new TopBorder() { Style = borderStyleValues.Single(b => b.Key == borderInfo.Border.TopBorder).Value };
+ TopBorder topBorder = new TopBorder() { Style = borderInfo.Border.TopBorder.ToOpenXml() };
Color topBorderColor = GetNewColor(borderInfo.Border.TopBorderColor);
topBorder.Append(topBorderColor);
border.Append(topBorder);
- BottomBorder bottomBorder = new BottomBorder() { Style = borderStyleValues.Single(b => b.Key == borderInfo.Border.BottomBorder).Value };
+ BottomBorder bottomBorder = new BottomBorder() { Style = borderInfo.Border.BottomBorder.ToOpenXml() };
Color bottomBorderColor = GetNewColor(borderInfo.Border.BottomBorderColor);
bottomBorder.Append(bottomBorderColor);
border.Append(bottomBorder);
- DiagonalBorder diagonalBorder = new DiagonalBorder() { Style = borderStyleValues.Single(b => b.Key == borderInfo.Border.DiagonalBorder).Value };
+ DiagonalBorder diagonalBorder = new DiagonalBorder() { Style = borderInfo.Border.DiagonalBorder.ToOpenXml() };
Color diagonalBorderColor = GetNewColor(borderInfo.Border.DiagonalBorderColor);
diagonalBorder.Append(diagonalBorderColor);
border.Append(diagonalBorder);
@@ -1282,7 +1061,7 @@
if (b.LeftBorder != null)
{
if (b.LeftBorder.Style != null)
- nb.LeftBorder = borderStyleValues.Single(p => p.Value == b.LeftBorder.Style).Key;
+ nb.LeftBorder = b.LeftBorder.Style.Value.ToClosedXml();
var bColor = GetColor(b.LeftBorder.Color);
if (bColor.HasValue)
nb.LeftBorderColor = bColor;
@@ -1291,7 +1070,7 @@
if (b.RightBorder != null)
{
if (b.RightBorder.Style != null)
- nb.RightBorder = borderStyleValues.Single(p => p.Value == b.RightBorder.Style).Key;
+ nb.RightBorder = b.RightBorder.Style.Value.ToClosedXml();
var bColor = GetColor(b.RightBorder.Color);
if (bColor.HasValue)
nb.RightBorderColor = bColor;
@@ -1300,7 +1079,7 @@
if (b.TopBorder != null)
{
if (b.TopBorder.Style != null)
- nb.TopBorder = borderStyleValues.Single(p => p.Value == b.TopBorder.Style).Key;
+ nb.TopBorder = b.TopBorder.Style.Value.ToClosedXml();
var bColor = GetColor(b.TopBorder.Color);
if (bColor.HasValue)
nb.TopBorderColor = bColor;
@@ -1309,7 +1088,7 @@
if (b.BottomBorder != null)
{
if (b.BottomBorder.Style != null)
- nb.BottomBorder = borderStyleValues.Single(p => p.Value == b.BottomBorder.Style).Key;
+ nb.BottomBorder = b.BottomBorder.Style.Value.ToClosedXml();
var bColor = GetColor(b.BottomBorder.Color);
if (bColor.HasValue)
nb.BottomBorderColor = bColor;
@@ -1372,7 +1151,7 @@
{
Fill fill = new Fill();
- PatternFill patternFill = new PatternFill() { PatternType = fillPatternValues.Single(p => p.Key == fillInfo.Fill.PatternType).Value };
+ PatternFill patternFill = new PatternFill() { PatternType = fillInfo.Fill.PatternType.ToOpenXml() };
ForegroundColor foregroundColor = new ForegroundColor();
if (fillInfo.Fill.PatternColor.ColorType == XLColorType.Color)
foregroundColor.Rgb = fillInfo.Fill.PatternColor.Color.ToHex();
@@ -1410,7 +1189,7 @@
if (f.PatternFill != null)
{
if (f.PatternFill.PatternType != null)
- nF.PatternType = fillPatternValues.Single(p => p.Value == f.PatternFill.PatternType).Key;
+ nF.PatternType = f.PatternFill.PatternType.Value.ToClosedXml();
var fColor = GetColor(f.PatternFill.ForegroundColor);
if (fColor.HasValue)
@@ -1458,9 +1237,9 @@
Font font = new Font();
Bold bold = fontInfo.Font.Bold ? new Bold() : null;
Italic italic = fontInfo.Font.Italic ? new Italic() : null;
- Underline underline = fontInfo.Font.Underline != XLFontUnderlineValues.None ? new Underline() { Val = underlineValuesList.Single(u => u.Key == fontInfo.Font.Underline).Value } : null;
+ Underline underline = fontInfo.Font.Underline != XLFontUnderlineValues.None ? new Underline() { Val = fontInfo.Font.Underline.ToOpenXml() } : null;
Strike strike = fontInfo.Font.Strikethrough ? new Strike() : null;
- VerticalTextAlignment verticalAlignment = new VerticalTextAlignment() { Val = fontVerticalTextAlignmentValues.Single(f => f.Key == fontInfo.Font.VerticalAlignment).Value };
+ VerticalTextAlignment verticalAlignment = new VerticalTextAlignment() { Val = fontInfo.Font.VerticalAlignment.ToOpenXml() };
Shadow shadow = fontInfo.Font.Shadow ? new Shadow() : null;
FontSize fontSize = new FontSize() { Val = fontInfo.Font.FontSize };
Color color = GetNewColor(fontInfo.Font.FontColor);
@@ -1521,13 +1300,13 @@
nf.Italic = f.Italic != null;
if (f.Underline != null)
if (f.Underline.Val != null)
- nf.Underline = underlineValuesList.Single(u => u.Value == f.Underline.Val).Key;
+ nf.Underline = f.Underline.Val.Value.ToClosedXml();
else
nf.Underline = XLFontUnderlineValues.Single;
nf.Strikethrough = f.Strike != null;
if (f.VerticalTextAlignment != null)
if (f.VerticalTextAlignment.Val != null)
- nf.VerticalAlignment = fontVerticalTextAlignmentValues.Single(v => v.Value == f.VerticalTextAlignment.Val).Key;
+ nf.VerticalAlignment = f.VerticalTextAlignment.Val.Value.ToClosedXml();
else
nf.VerticalAlignment = XLFontVerticalTextAlignmentValues.Baseline;
nf.Shadow = f.Shadow != null;
@@ -1671,6 +1450,9 @@
worksheetPart.Worksheet.SheetViews.Append(sheetView);
}
+ sheetView.TabSelected = xlWorksheet.TabSelected;
+
+
if (xlWorksheet.ShowFormulas)
sheetView.ShowFormulas = true;
else
@@ -2233,7 +2015,7 @@
AllowBlank = dv.IgnoreBlanks,
Formula1 = new Formula1(dv.MinValue),
Formula2 = new Formula2(dv.MaxValue),
- Type = dataValidationValues.Single(p => p.Key == dv.AllowedValues).Value,
+ Type = dv.AllowedValues.ToOpenXml(),
ShowErrorMessage = dv.ShowErrorMessage,
Prompt = dv.InputMessage,
PromptTitle = dv.InputTitle,
@@ -2241,8 +2023,8 @@
Error = dv.ErrorMessage,
ShowDropDown = !dv.InCellDropdown,
ShowInputMessage = dv.ShowInputMessage,
- ErrorStyle = dataValidationErrorStyleValues.Single(p => p.Key == dv.ErrorStyle).Value,
- Operator = dataValidationOperatorValues.Single(p => p.Key == dv.Operator).Value,
+ ErrorStyle = dv.ErrorStyle.ToOpenXml(),
+ Operator = dv.Operator.ToOpenXml(),
SequenceOfReferences = new ListValue() { InnerText = sequence }
};
@@ -2344,13 +2126,13 @@
PageSetup pageSetup = worksheetPart.Worksheet.Elements().First();
cm.SetElement(XLWSContentManager.XLWSContents.PageSetup, pageSetup);
- pageSetup.Orientation = pageOrientationValues.Single(p => p.Key == xlWorksheet.PageSetup.PageOrientation).Value;
+ pageSetup.Orientation = xlWorksheet.PageSetup.PageOrientation.ToOpenXml();
pageSetup.PaperSize = (UInt32)xlWorksheet.PageSetup.PaperSize;
pageSetup.BlackAndWhite = xlWorksheet.PageSetup.BlackAndWhite;
pageSetup.Draft = xlWorksheet.PageSetup.DraftQuality;
- pageSetup.PageOrder = pageOrderValues.Single(p => p.Key == xlWorksheet.PageSetup.PageOrder).Value;
- pageSetup.CellComments = showCommentsValues.Single(s => s.Key == xlWorksheet.PageSetup.ShowComments).Value;
- pageSetup.Errors = printErrorValues.Single(p => p.Key == xlWorksheet.PageSetup.PrintErrorValue).Value;
+ pageSetup.PageOrder = xlWorksheet.PageSetup.PageOrder.ToOpenXml();
+ pageSetup.CellComments = xlWorksheet.PageSetup.ShowComments.ToOpenXml();
+ pageSetup.Errors = xlWorksheet.PageSetup.PrintErrorValue.ToOpenXml();
if (xlWorksheet.PageSetup.FirstPageNumber > 0)
{
@@ -3399,7 +3181,7 @@
{
if (xlField.TotalsRowFunction != XLTotalsRowFunction.None)
{
- tableColumn1.TotalsRowFunction = totalsRowFunctionValues.Single(p => p.Key == xlField.TotalsRowFunction).Value;
+ tableColumn1.TotalsRowFunction = xlField.TotalsRowFunction.ToOpenXml();
if (xlField.TotalsRowFunction == XLTotalsRowFunction.Custom)
tableColumn1.TotalsRowFormula = new TotalsRowFormula(xlField.TotalsRowFormulaA1);
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs
index 8df8cd0..c002922 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs
@@ -845,5 +845,26 @@
TabColor = color;
return this;
}
+
+ public Boolean TabSelected { get; set; }
+ Boolean tabActive;
+ public Boolean TabActive
+ {
+ get { return tabActive; }
+ set
+ {
+ if (value && !tabActive)
+ {
+ foreach (var ws in Worksheet.Workbook.Worksheets)
+ {
+ (ws as XLWorksheet).tabActive = false;
+ }
+ }
+ tabActive = value;
+ }
+ }
+ public IXLWorksheet SetTabSelected() { TabSelected = true; return this; } public IXLWorksheet SetTabSelected(Boolean value) { TabSelected = value; return this; }
+ public IXLWorksheet SetTabActive() { TabActive = true; return this; } public IXLWorksheet SetTabActive(Boolean value) { TabActive = value; return this; }
+
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML_Examples/ClosedXML_Examples.csproj b/ClosedXML/ClosedXML/ClosedXML_Examples/ClosedXML_Examples.csproj
index 07b46ed..d3244d2 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Examples/ClosedXML_Examples.csproj
+++ b/ClosedXML/ClosedXML/ClosedXML_Examples/ClosedXML_Examples.csproj
@@ -11,7 +11,8 @@
ClosedXML_Examples
ClosedXML_Examples
v4.0
- Client
+
+
512
SAK
SAK
@@ -19,7 +20,7 @@
SAK
- x86
+ AnyCPU
true
full
false
@@ -42,7 +43,7 @@
bin\x64\Debug\
DEBUG;TRACE
full
- x64
+ AnyCPU
bin\Debug\ClosedXML_Examples.exe.CodeAnalysisLog.xml
true
GlobalSuppressions.cs
@@ -68,6 +69,40 @@
;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
false
+
+ true
+ bin\Debug\
+ DEBUG;TRACE
+ full
+ AnyCPU
+ bin\Debug\ClosedXML_Examples.exe.CodeAnalysisLog.xml
+ true
+ GlobalSuppressions.cs
+ prompt
+ MinimumRecommendedRules.ruleset
+ ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets
+ false
+ ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
+ false
+ false
+
+
+ bin\Release\
+ TRACE
+ true
+ pdbonly
+ AnyCPU
+ bin\Release\ClosedXML_Examples.exe.CodeAnalysisLog.xml
+ true
+ GlobalSuppressions.cs
+ prompt
+ MinimumRecommendedRules.ruleset
+ ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets
+ true
+ ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
+ true
+ false
+
@@ -160,6 +195,9 @@
ClosedXML
+
+
+