diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs index 8453406..d697bd8 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs @@ -1633,7 +1633,17 @@ if (copyDataValidations) { - CopyDataValidation(otherCell, otherCell.DataValidation); + + Boolean eventTracking = Worksheet.EventTrackingEnabled; + Worksheet.EventTrackingEnabled = false; + if(otherCell.HasDataValidation) + CopyDataValidation(otherCell, otherCell.DataValidation); + else if (HasDataValidation) + { + using(var asRange = AsRange()) + Worksheet.DataValidations.Delete(asRange); + } + Worksheet.EventTrackingEnabled = eventTracking; } return this; diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/DataValidation/XLDataValidations.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/DataValidation/XLDataValidations.cs index e35857b..8ebd76f 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/DataValidation/XLDataValidations.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/DataValidation/XLDataValidations.cs @@ -45,5 +45,10 @@ { _dataValidations.RemoveAll(dv => dv.Ranges.Equals(dataValidation.Ranges)); } + + public void Delete(IXLRange range) + { + _dataValidations.RemoveAll(dv => dv.Ranges.Contains(range)); + } } } \ No newline at end of file diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs index 2b2aa55..3cd5b80 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs @@ -1177,12 +1177,12 @@ } public IXLRangeRows InsertRowsAbove(Boolean onlyUsedCells, Int32 numberOfRows, Boolean formatFromAbove = true) { - foreach (XLWorksheet ws in Worksheet.Workbook.WorksheetsInternal) - { - foreach (XLCell cell in ws.Internals.CellsCollection.GetCells(c => !StringExtensions.IsNullOrWhiteSpace(c.FormulaA1))) - using (var asRange = AsRange()) - cell.ShiftFormulaRows(asRange, numberOfRows); - } + using (var asRange = AsRange()) + foreach (XLWorksheet ws in Worksheet.Workbook.WorksheetsInternal) + { + foreach (XLCell cell in ws.Internals.CellsCollection.GetCells(c => !StringExtensions.IsNullOrWhiteSpace(c.FormulaA1))) + cell.ShiftFormulaRows(asRange, numberOfRows); + } var cellsToInsert = new Dictionary(); var cellsToDelete = new List(); diff --git a/ClosedXML/ClosedXML/ClosedXML/Properties/AssemblyInfo.cs b/ClosedXML/ClosedXML/ClosedXML/Properties/AssemblyInfo.cs index e9cb2f3..e03acd3 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Properties/AssemblyInfo.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Properties/AssemblyInfo.cs @@ -31,6 +31,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.65.1.0")] -[assembly: AssemblyFileVersion("0.65.1.0")] +[assembly: AssemblyVersion("0.65.2.0")] +[assembly: AssemblyFileVersion("0.65.2.0")] [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ClosedXML_Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a1fb8ba59167fe734d64128ca73d32c45cb8a117246d09c95c8769db88fe332b0a3396bedd0ea48ee42b0e5796fec0798ca5cb628a9a6de80d35d6c67b936ca1670347b3d4f2b769c8ce2ddcf959dbac6bcd88e6c08751ea1fffa0522de3507193e7035305a8aa008d6c88cca1341b3120fa9c347ab3f97e2d772e2709277da5")] \ No newline at end of file diff --git a/ClosedXML/ClosedXML/ClosedXML_Net3.5/Properties/AssemblyInfo.cs b/ClosedXML/ClosedXML/ClosedXML_Net3.5/Properties/AssemblyInfo.cs index b283527..d31b949 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Net3.5/Properties/AssemblyInfo.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Net3.5/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.65.1.0")] -[assembly: AssemblyFileVersion("0.65.1.0")] +[assembly: AssemblyVersion("0.65.2.0")] +[assembly: AssemblyFileVersion("0.65.2.0")] diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/DataValidations/DataValidationTests.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/DataValidations/DataValidationTests.cs index 8f862c4..10cfe9e 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/DataValidations/DataValidationTests.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/DataValidations/DataValidationTests.cs @@ -105,7 +105,7 @@ var wb = new XLWorkbook(); var ws = wb.Worksheets.Add("Sheet1"); ws.Cell("A1").SetValue("A"); - ws.Cell("B1").SetDataValidation().Value = "Sheet1!A1"; + ws.Cell("B1").SetDataValidation().Custom("Sheet1!A1"); var ws2 = wb.AddWorksheet("Sheet2"); ws2.Cell("A1").SetValue("B"); @@ -132,7 +132,7 @@ var wb = new XLWorkbook(); var ws = wb.Worksheets.Add("Sheet1"); ws.Cell("A1").SetValue("A"); - ws.Cell("B1").SetDataValidation().Value = "A1"; + ws.Cell("B1").SetDataValidation().Custom("A1"); ws.Cell("B1").CopyTo(ws.Cell("B2")); Assert.AreEqual("A2", ws.Cell("B2").DataValidation.Value); } @@ -155,7 +155,7 @@ var wb = new XLWorkbook(); var ws = wb.Worksheets.Add("Sheet1"); ws.Cell("A1").SetValue("A"); - ws.Cell("B1").SetDataValidation().Value = "A1"; + ws.Cell("B1").SetDataValidation().Custom("A1"); ws.Cell("B1").CopyTo(ws.Cell("C1")); Assert.AreEqual("B1", ws.Cell("C1").DataValidation.Value); }