diff --git a/.vs/config/applicationhost.config b/.vs/config/applicationhost.config
new file mode 100644
index 0000000..113af3d
--- /dev/null
+++ b/.vs/config/applicationhost.config
@@ -0,0 +1,1047 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/CONTRIBUTING.md
diff --git a/ClosedXML/ClosedXML.csproj b/ClosedXML/ClosedXML.csproj
index 2641ffc..7de9988 100644
--- a/ClosedXML/ClosedXML.csproj
+++ b/ClosedXML/ClosedXML.csproj
@@ -342,7 +342,9 @@
.editorconfig
-
+
+ Designer
+
+
diff --git a/ClosedXML/Extensions.cs b/ClosedXML/Extensions.cs
index 747961f..7655168 100644
--- a/ClosedXML/Extensions.cs
+++ b/ClosedXML/Extensions.cs
@@ -172,29 +172,9 @@
public static class IntegerExtensions
{
- private static readonly NumberFormatInfo nfi = CultureInfo.InvariantCulture.NumberFormat;
-
- [ThreadStatic]
- private static Dictionary intToString;
-
public static String ToInvariantString(this Int32 value)
{
- String sValue;
- if (intToString == null)
- {
- intToString = new Dictionary();
- sValue = value.ToString(nfi);
- intToString.Add(value, sValue);
- }
- else
- {
- if (!intToString.TryGetValue(value, out sValue))
- {
- sValue = value.ToString(nfi);
- intToString.Add(value, sValue);
- }
- }
- return sValue;
+ return value.ToString(CultureInfo.InvariantCulture.NumberFormat);
}
}
diff --git a/ClosedXML_Examples/ClosedXML_Examples.csproj.original b/ClosedXML_Examples/ClosedXML_Examples.csproj.original
new file mode 100644
index 0000000..7241f27
--- /dev/null
+++ b/ClosedXML_Examples/ClosedXML_Examples.csproj.original
@@ -0,0 +1,196 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {03A518D0-1CB7-488E-861C-C4E782B27A46}
+ Exe
+ Properties
+ ClosedXML_Examples
+ ClosedXML_Examples
+ v4.5.2
+
+
+ 512
+ ..\
+ true
+
+
+ true
+ bin\Debug\
+ DEBUG;TRACE
+ full
+ AnyCPU
+ prompt
+ false
+
+
+ bin\Release\
+ TRACE
+ true
+ pdbonly
+ AnyCPU
+ prompt
+ false
+
+
+ ClosedXML_Examples.Program
+
+
+ true
+
+
+ ClosedXML.snk
+
+
+ true
+
+
+
+ ..\packages\DocumentFormat.OpenXml.2.7.1\lib\net45\DocumentFormat.OpenXml.dll
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .editorconfig
+
+
+
+
+
+
+
+ {BD5E6BFE-E837-4A35-BCA9-39667D873A20}
+ ClosedXML
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ClosedXML_Sandbox/ClosedXML_Sandbox.csproj.original b/ClosedXML_Sandbox/ClosedXML_Sandbox.csproj.original
new file mode 100644
index 0000000..2efd458
--- /dev/null
+++ b/ClosedXML_Sandbox/ClosedXML_Sandbox.csproj.original
@@ -0,0 +1,85 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}
+ Exe
+ Properties
+ ClosedXML_Sandbox
+ ClosedXML_Sandbox
+ v4.5.2
+ 512
+ ..\
+ true
+
+
+ true
+ bin\Debug\
+ DEBUG;TRACE
+ full
+ AnyCPU
+ prompt
+ false
+
+
+ bin\Release\
+ TRACE
+ true
+ pdbonly
+ AnyCPU
+ prompt
+ false
+
+
+
+ ..\packages\DocumentFormat.OpenXml.2.7.1\lib\net45\DocumentFormat.OpenXml.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .editorconfig
+
+
+
+
+ PreserveNewest
+
+
+
+
+ {bd5e6bfe-e837-4a35-bca9-39667d873a20}
+ ClosedXML
+
+
+ {03A518D0-1CB7-488E-861C-C4E782B27A46}
+ ClosedXML_Examples
+
+
+
+
+
\ No newline at end of file
diff --git a/ClosedXML_Sandbox/Open XML Explained.pdf b/ClosedXML_Sandbox/Open XML Explained.pdf
new file mode 100644
index 0000000..dce5eb5
--- /dev/null
+++ b/ClosedXML_Sandbox/Open XML Explained.pdf
Binary files differ
diff --git a/ClosedXML_Sandbox/SampleSheet.xlsm b/ClosedXML_Sandbox/SampleSheet.xlsm
new file mode 100644
index 0000000..7442d5c
--- /dev/null
+++ b/ClosedXML_Sandbox/SampleSheet.xlsm
Binary files differ
diff --git a/ClosedXML_Sandbox/template.zip b/ClosedXML_Sandbox/template.zip
new file mode 100644
index 0000000..1917de4
--- /dev/null
+++ b/ClosedXML_Sandbox/template.zip
Binary files differ
diff --git a/ClosedXML_Sandbox/test - Copy.xlsx b/ClosedXML_Sandbox/test - Copy.xlsx
new file mode 100644
index 0000000..a7102bc
--- /dev/null
+++ b/ClosedXML_Sandbox/test - Copy.xlsx
Binary files differ
diff --git a/ClosedXML_Sandbox/test.xlsm b/ClosedXML_Sandbox/test.xlsm
new file mode 100644
index 0000000..5d8a4ec
--- /dev/null
+++ b/ClosedXML_Sandbox/test.xlsm
Binary files differ
diff --git a/ClosedXML_Sandbox/test.zip b/ClosedXML_Sandbox/test.zip
new file mode 100644
index 0000000..1eb5ef3
--- /dev/null
+++ b/ClosedXML_Sandbox/test.zip
Binary files differ
diff --git a/ClosedXML_Sandbox/test2.ZIP b/ClosedXML_Sandbox/test2.ZIP
new file mode 100644
index 0000000..1a3dbd1
--- /dev/null
+++ b/ClosedXML_Sandbox/test2.ZIP
Binary files differ
diff --git a/ClosedXML_Tests/ClosedXML_Tests.csproj.original b/ClosedXML_Tests/ClosedXML_Tests.csproj.original
new file mode 100644
index 0000000..49e1111
--- /dev/null
+++ b/ClosedXML_Tests/ClosedXML_Tests.csproj.original
@@ -0,0 +1,287 @@
+
+
+
+ Debug
+ AnyCPU
+
+
+ 2.0
+ {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}
+ Library
+ Properties
+ ClosedXML_Tests
+ ClosedXML_Tests
+ v4.5.2
+ 512
+ {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ ..\
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE;$(AppVeyor)
+ prompt
+ 4
+ false
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE;$(AppVeyor)
+ prompt
+ 4
+ false
+
+
+ true
+
+
+ ClosedXML.snk
+
+
+
+ ..\packages\DocumentFormat.OpenXml.2.7.1\lib\net45\DocumentFormat.OpenXml.dll
+ True
+
+
+
+ ..\packages\NUnit.3.4.1\lib\net45\nunit.framework.dll
+ True
+
+
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {BD5E6BFE-E837-4A35-BCA9-39667D873A20}
+ ClosedXML
+
+
+ {03A518D0-1CB7-488E-861C-C4E782B27A46}
+ ClosedXML_Examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .editorconfig
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ECMA-376, Third Edition, Part 1 - Fundamentals And Markup Language Reference.zip b/ECMA-376, Third Edition, Part 1 - Fundamentals And Markup Language Reference.zip
new file mode 100644
index 0000000..32c8dee
--- /dev/null
+++ b/ECMA-376, Third Edition, Part 1 - Fundamentals And Markup Language Reference.zip
Binary files differ
diff --git a/NetJSON.dll b/NetJSON.dll
new file mode 100644
index 0000000..66ee271
--- /dev/null
+++ b/NetJSON.dll
Binary files differ
diff --git a/TestHelper.cs.checkedin b/TestHelper.cs.checkedin
new file mode 100644
index 0000000..4384b99
--- /dev/null
+++ b/TestHelper.cs.checkedin
@@ -0,0 +1,130 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.IO;
+using System.Threading;
+using ClosedXML.Excel;
+using ClosedXML_Examples;
+using DocumentFormat.OpenXml.Drawing;
+using NUnit.Framework;
+using Path = System.IO.Path;
+
+namespace ClosedXML_Tests
+{
+ internal static class TestHelper
+ {
+ public static string CurrencySymbol
+ {
+ get { return Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencySymbol; }
+ }
+
+ //Note: Run example tests parameters
+ public static string TestsOutputDirectory
+ {
+ get
+ {
+ return Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
+ }
+
+ }
+
+ public const string ActualTestResultPostFix = "";
+ public static readonly string TestsExampleOutputDirectory = Path.Combine(TestsOutputDirectory, "Examples");
+
+ private const bool CompareWithResources = true;
+
+ private static readonly ResourceFileExtractor _extractor = new ResourceFileExtractor(null, ".Resource.Examples.");
+
+ public static void SaveWorkbook(XLWorkbook workbook, params string[] fileNameParts)
+ {
+ workbook.SaveAs(Path.Combine(new string[] { TestsOutputDirectory }.Concat(fileNameParts).ToArray()), true);
+ }
+
+ // Because different fonts are installed on Unix,
+ // the columns widths after AdjustToContents() will
+ // cause the tests to fail.
+ // Therefore we ignore the width attribute when running on Unix
+ public static bool IsRunningOnUnix
+ {
+ get
+ {
+ int p = (int)Environment.OSVersion.Platform;
+ return ((p == 4) || (p == 6) || (p == 128));
+ }
+ }
+
+ public static void RunTestExample(string filePartName)
+ where T : IXLExample, new()
+ {
+ // Make sure tests run on a deterministic culture
+ Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
+
+ var example = new T();
+ string[] pathParts = filePartName.Split(new char[] {'\\'});
+ string filePath1 = Path.Combine(new List() { TestsExampleOutputDirectory }.Concat(pathParts).ToArray());
+
+ var extension = Path.GetExtension(filePath1);
+ var directory = Path.GetDirectoryName(filePath1);
+
+ var fileName= Path.GetFileNameWithoutExtension(filePath1);
+ fileName += ActualTestResultPostFix;
+ fileName = Path.ChangeExtension(fileName, extension);
+
+ filePath1 = Path.Combine(directory, "z" + fileName);
+ var filePath2 = Path.Combine(directory, fileName);
+ //Run test
+ example.Create(filePath1);
+ new XLWorkbook(filePath1).SaveAs(filePath2, true);
+ bool success = true;
+#pragma warning disable 162
+ try
+ {
+ //Compare
+ // ReSharper disable ConditionIsAlwaysTrueOrFalse
+ if (CompareWithResources)
+ // ReSharper restore ConditionIsAlwaysTrueOrFalse
+
+ {
+ string resourcePath = filePartName.Replace('\\', '.').TrimStart('.');
+ using (var streamExpected = _extractor.ReadFileFromResToStream(resourcePath))
+ using (var streamActual = File.OpenRead(filePath2))
+ {
+ string message;
+ success = ExcelDocsComparer.Compare(streamActual, streamExpected, TestHelper.IsRunningOnUnix, out message);
+ var formattedMessage =
+ String.Format(
+ "Actual file '{0}' is different than the expected file '{1}'. The difference is: '{2}'",
+ filePath2, resourcePath, message);
+
+ Assert.IsTrue(success, formattedMessage);
+ }
+ }
+ }
+ finally
+ {
+ //if (success && File.Exists(filePath)) File.Delete(filePath);
+ }
+#pragma warning restore 162
+ }
+
+ public static string GetResourcePath(string filePartName)
+ {
+ return filePartName.Replace('\\', '.').TrimStart('.');
+ }
+
+ public static Stream GetStreamFromResource(string resourcePath)
+ {
+ var extractor = new ResourceFileExtractor(null, ".Resource.");
+ return extractor.ReadFileFromResToStream(resourcePath);
+ }
+
+ public static void LoadFile(string filePartName)
+ {
+ using (var stream = GetStreamFromResource(GetResourcePath(filePartName)))
+ {
+ var wb = new XLWorkbook(stream);
+ wb.Dispose();
+ }
+ }
+ }
+}
diff --git a/issues.txt b/issues.txt
new file mode 100644
index 0000000..7897ab6
--- /dev/null
+++ b/issues.txt
@@ -0,0 +1,249 @@
+ #249 Invalid Hyperlink: Malformed URI is embedded as a hyperlink in the document.
+ #248 Autofilter Removed When Copying Sheet
+ #247 Asp.Net file delivering example question
+ #246 Reworked conditional formatting behavior and added some changes
+ #245 Add formula for SumProduct
+ #244 How to add IEnumerable object to ClosedXML ?
+ #243 HELP PLEASE! Applying AutoFilter changes formula references
+ #242 Please support .Net Core / .Net Standard duplicate
+ #241 Custom Filter
+ #240 InsertRowsBelow slower than InsertData
+ #239 Get "Identifier expected." when try to read a value duplicate
+ #238 Columns().AdjustToContents - TableHeader Column names ?
+ #237 Columns().AdjustToContents(1, 20) - throwing several System.Exception
+ #236 Support ConditionalFormat DataBar like Office 2010
+ #235 Replace instances of Exception class with instances of other sub clas
+ #234 Open excel and add row
+ #233 Don't crash when file contains multiple default styles
+ #232 Column.AdjustToContents(): Inspect worksheet and table autofilters to leave space for arrow
+ #231 Text() function - return string as is if input value is already a string
+ #230 0.86 Sequence contains more than one matching element enhancement
+ #229 Can we do the format and group column on the Pivot Table? Parked Sample file required
+ #228 Set ColumnOrderAttribute Obsolete
+ #227 Implement new XLColumnAttribute
+ #226 Formula Text excel different behavior bug
+ #225 Upgrade OpenXML to v2.7.1
+ #224 Columns().AdjustToContents(1, 20) - Performance regression Sample file required
+ #223 'br' start tag on line #### position ## does not match end tag of 'font'
+ #222 Add VmlDrawing Id's to context to avoid reuse.
+ #221 Id conflicts with the Id of an existing relationship. bug
+ #220 Save Existing Excel file: File gets corrupted
+ #219 Cannot open existing Excel File
+ #218 Pivot tables default filter
+ #217 Conditional formatting to stop when true
+ #216 Faster way to search for text
+ #215 XLConditionalFormat CopyFrom NULL exception
+ #214 Don't reference cell to get row height
+ #213 InsertRowsBelow fails with ArgumentException when there is a comment below the new rows bug
+ #212 Preserve cell format when inserting table or data
+ #211 Issue175 use xlparser to parse print area
+ #210 Use FastMember instead of slow Reflection
+ #209 Implement new XLColumnAttribute
+ #208 Add attribute to ignore column
+ #207 new XLWorkbook() is working too slow
+ #206 default cell style invalid
+ #205 IXLColumn.Delete() sometimes creates corrupt XLSX files.
+ #204 Better detection of numerical data types. Not only System.Double.
+ #203 Remove orphaned drawings from worksheets
+ #202 cannot operate with existing excel file
+ #201 decimal datatype not handled properly as number
+ #200 Preserve whitespace in cells.
+ #199 Classic layout should be disabled by default.
+ #198 Current NuGet packages are Debug Builds failing validation on non US systems help wanted
+ #197 Closedxml error after merging cells Sample file required
+ #196 Theme XLColor to System.Drawing.Color question
+ #195 fixed null reference exception
+ #194 Cell with only white space is trimmed bug
+ #193 DataValidation not working copy from another cell
+ #192 sheet.Cell("B3").InsertData(table.AsEnumerable()) doesn't apply a user defined cell format bug
+ #191 ClassicPivotTableLayout does not work bug
+ #190 Exception opening xlsx with existing Pivot tables Sample file required
+ #189 Requested value 'TableStyleQueryResult' was not found Parked
+ #188 Tally.cs not found Sample file required
+ #187 Formula Row(A1) is not supported
+ #186 Deduce default header and footer font from worksheet
+ #185 Correctly deduce data type from number format string if data type is number (as for LibreOffice files).
+ #184 Can we write data and char in power point file by ClosedXML
+ #183 ClosedXML throwing out of memory exception when exporting 73000 records
+ #182 InsertData Skipping Columns
+ #181 ClosedXML not handling dates correctly bug
+ #180 Implement sheet zooming
+ #179 Pivot table loading enhancements and collapsing fields
+ #178 'System.ApplicationException'
+ #177 Issue175 parse commas in print area
+ #176 Saving value date '1000-01-01' in xlsx
+ #175 Allow references to worksheet with a space in its name
+ #174 Header/Footer length error - xlsx file bug
+ #173 Cap column width at 255
+ #172 Allow pivot table field to be a value field and a row/column/filter field
+ #171 PivotTable created from LINQ query is corrupt but recoverable in Excel
+ #170 AdjustToContents() will adjust to invalid values
+ #169 Header/Footer Text Formatting question
+ #168 Disabling Autofilter
+ #167 Create file in memory
+ #166 Cannot add New Line
+ #165 Dispose hell
+ #164 Adding rows clears Conditional Formatting
+ #163 Can't retrieve a excel file from a code
+ #162 Cannot save workbooks
+ #161 Shift Conditional Formats
+ #160 Conditional formatting should be applicable to multiple ranges
+ #159 Force OpenXMLValidator to run under invariant culture
+ #158 Explicitly ignore custom sheet view elements.
+ #157 Fix maths / statistical functions
+ #156 Calling SaveAs fails with validation error
+ #155 Can't load an excel file: "An item with the same key has already been added."
+ #154 Shift page breaks
+ #153 Page breaks are not shifting
+ #152 Culture non invariant cause crash on save
+ #151 Error in ImportStream
+ #150 sheet.Evaluate("COUNTIF......
+ #149 Update test for correctly testing time value as string
+ #148 Improve conditional formatting loading and saving
+ #147 When saving a document with cell, staring with apostrophe ( ' ), this symbol is trimmed question
+ #146 XlWorkbook NamedRanges do not include local names
+ #145 System.ApplicationException in ClosedXML
+ #144 exception: `System.IndexOutOfRangeException`
+ #143 UWP and Xamarin Forms support
+ #142 Use BuiltInId to determine default style
+ #141 Getting this exp "Specified argument was out of the range of valid values." while opening an excel file
+ #140 Workbook generated using closedxml, throwing error (Couldn't find 'xl/worksheets/sheet1.xml' ) while trying to read from other software
+ #139 Workbook Connection lost enhancement
+ #138 Release 0.85.0, Worksheet.PivotTables not detecting pivot tables
+ #137 Named constants throw exception. enhancement
+ #136 Save workbook exception bug
+ #135 Generated XLSX is invalid bug
+ #134 How I can copy range values without formulas?
+ #133 XLTable.FieldNames Dictionary doesn't Refresh Keys
+ #132 When a cell's text begins with a new line code and Japanese Kanji enhancement help wanted
+ #131 When an Id of a first sheet is 2
+ #130 Why are all number types converted into double?
+ #129 Query Sheets help wanted question
+ #128 Pivot table case sensitivity problem with rowlabels
+ #127 Correctly save sheet Id and RelId
+ #126 Workbook loses fit to page settings on save
+ #125 Screws up references from second sheet to first sheet when first sheet is updated
+ #124 Implement loading pivot tables
+ #123 PivotTable case sensitivity problem with RowLabels
+ #122 PageSetup
+ #121 External link relationship in formulas enhancement
+ #120 CurrentRegion for IXLRange enhancement
+ #119 nuget ETA
+ #118 Catch implicit conversion that fails.
+ #117 Calculation failure in date cell
+ #116 Implement 'Visible' property on named ranges.
+ #115 Exception when calling SaveAs()
+ #114 PageSetup.Footer.Left is not filled with data from PageSetup.Footer
+ #113 Getting format exception and not getting proper value of a cell which shows properly on excel
+ #112 After the first 4 sheets, Border is assigned only to specific cells
+ #111 There is a phenomenon that the setting of Border does not apply.
+ #110 Copying sheet doesn't bring graphs over enhancement Hacktoberfest
+ #109 Don't match parts of formula between single quotes (i.e. sheet names)
+ #108 Fix regex for parsing cell formula.
+ #107 Copying cell with certain formula results in corrupt cell
+ #106 Defined Name Visibility
+ #105 Sort does not work properly when using Formula's
+ #104 Load sheet data with table with no rows correctly
+ #103 Additional Cell Formatting Options
+ #102 StackOverflowException due to long chain of formula dependencies
+ #101 Support .NET Standard enhancement Parked
+ #100 Multiple SaveAs calls causes InvalidCastException
+ #99 Pivot table improvements
+ #98 Theme colors
+ #97 Parse inline string with rich text correctly.
+ #96 More than one Value to Pivot table not working
+ #95 Setting thread culture so that tests pass on any machine
+ #94 Properly dispose workbook after tests are completed.
+ #93 Number formatting does not work
+ #92 number format
+ #91 Parsing of rich text inside inline string fails
+ #90 Copying a range will alter the worksheet names in a Formula
+ #89 checkboxes support
+ #88 Expose new Cells() function to iterate over cells, including unused cells inside range, but excluding unused cells outside range. enhancement
+ #87 Support for multiple pivot tables bug
+ #86 Large Files - Performance & Memory consumption bug
+ #85 Fix the pivot table support for multiple pivot tables.
+ #84 reading empty cell issue
+ #83 Please any one help me out to read blank cell using Closed XML.
+ #82 Reading value from empty cell
+ #81 Allow room for filter arrow when adjusting column widths automatically. bug Hacktoberfest
+ #80 Fix VLOOKUP and HLOOKUP when reference table is not at A1. Fixes #72.
+ #79 More double parse fixes bug Hacktoberfest
+ #78 Improve HasDuplicates
+ #77 Columns().AdjustToContents ignored AutoFilter
+ #76 Add custom attribute to specify column order of object exported. enhancement Hacktoberfest
+ #75 Excel functions enhancement Hacktoberfest
+ #74 Excel functions
+ #73 DocumentFormat.OpenXml nuget dependency duplicate
+ #72 Vlookup using wrong row numbers bug Hacktoberfest
+ #71 Fix date and time functions where negative days are involved. bug Hacktoberfest
+ #70 Formulas like FIND and COUNTIF get removed
+ #69 Implement all date and time functions bug Hacktoberfest
+ #68 Include nuget install command
+ #67 Cannot set horizontal alignment on merged cells
+ #66 NickNack2020's fix for invalid char enhancement Hacktoberfest
+ #65 Fix conditional formatting bug Hacktoberfest
+ #64 Remove shadow test Hacktoberfest
+ #63 Excel found unreadable content - strip invalid XML characters? Hacktoberfest
+ #62 Optionally validate the workbook using OpenXmlValidator when saving it. enhancement Hacktoberfest
+ #61 Problem with the conditional formatting
+ #60 Object Creation Validation
+ #59 Read or retrieve value from spreadsheet using existing rangenames
+ #58 Implement RightToLeft in sheet view. Fixes #53 . Hacktoberfest
+ #57 Issue55 load table with hidden header row Hacktoberfest
+ #56 Use globally defined number style to parse text to double. Especially… Hacktoberfest
+ #55 installed ClosedXml nuget from nuget manager but can't load an existing excel file Hacktoberfest
+ #54 Wrong bar proportions in DataBar bug Hacktoberfest
+ #53 Sheet->Right-to-Left does not work bug Hacktoberfest
+ #52 Implement all Excel functions Hacktoberfest
+ #51 Full pivot table support enhancement Hacktoberfest
+ #50 Charting support enhancement Hacktoberfest
+ #49 Query table support enhancement Hacktoberfest
+ #48 Image support enhancement Hacktoberfest
+ #47 Parse and convert to string using invariant culture
+ #46 Fix paths for Unix environments
+ #45 Allow Access to lower level xml
+ #44 Dont hardcode examples folders
+ #43 Correct set page header
+ #42 Can't set header on non empty header
+ #41 Fixed R1C1 regex bug
+ #40 Problem with R1C1 Regex
+ #39 "Pivot Tables Values Problem" bug Hacktoberfest
+ #38 Investigate "Unreadable content" Issue
+ #37 Codeplex pr8519 performance improvements when inserting rows
+ #36 cell.RichText.Text v/s cell.Value.Tostring()
+ #35 When setting cell value to RichText, don't use SetEnumerable.
+ #34 Clearing AutoFilter shouldn't throw an exception
+ #33 Implement VLOOKUP and HLOOKUP
+ #32 Remove Autofilter problem
+ #31 Align develop branch with master
+ #30 Support for lookup functions enhancement
+ #29 Update version to 0.80
+ #28 Calculation properties
+ #27 Generate files in subfolders under executing assembly's folder.
+ #26 Clean up project files
+ #25 Fix XLColor equals method
+ #24 Suppress warning CS1591
+ #23 Sort(3); does not work on sheets
+ #22 Remove ClosedXML_Sandbox_VB project
+ #21 Remove warnings
+ #20 Ignore packages folder (from NuGet)
+ #19 Remove ClosedXML_Package project.
+ #18 Text function fixes
+ #17 SetRichText(object value)
+ #16 fix "conditional format doesn't work when range has multiple conditional format"
+ #15 fix "conditional format doesn't work when range has multiple conditio…
+ #14 Data at root level is invalid, generating xlsx from linux with mono
+ #13 Add .editorconfig file
+ #12 Upgrade NUnit to version 3.4.1 enhancement
+ #11 Fix workbook properties custom datetime property
+ #10 Fix datetime bug with short date format
+ #9 Parse dates with current culture
+ #8 PROPER function handling
+ #7 Implement type safe XLTableTheme class
+ #6 Allow for custom themes in tables. Fixes Codeplex 9499
+ #5 Check returned value is null when no worksheet was found.
+ #4 Delete obsolete files and folders.
+ #3 Fix number format id bug
+ #2 Preserve tables' column names when table is of type queryTable. Parked
+ #1 Delete pivotcache when deleting a sheet