diff --git a/ClosedXML/ClosedXML/ClosedXML.sln b/ClosedXML/ClosedXML/ClosedXML.sln index 307a9c7..16c7cbf 100644 --- a/ClosedXML/ClosedXML/ClosedXML.sln +++ b/ClosedXML/ClosedXML/ClosedXML.sln @@ -1,6 +1,6 @@  -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 11 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClosedXML_Sandbox", "ClosedXML_Sandbox\ClosedXML_Sandbox.csproj", "{38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5C94E22C-85AA-48FD-B082-CF929FFC6C31}" @@ -14,36 +14,31 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClosedXML_Net3.5", "ClosedXML_Net3.5\ClosedXML_Net3.5.csproj", "{5F43B12B-A900-40C6-9924-A0C0B032F791}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ClosedXML_Sandbox_VB", "ClosedXML_Sandbox_VB\ClosedXML_Sandbox_VB.vbproj", "{E005997D-B192-461F-AA3E-44007A33A3DF}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClosedXML", "ClosedXML\ClosedXML.csproj", "{BD5E6BFE-E837-4A35-BCA9-39667D873A20}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClosedXML_Tests", "ClosedXML_Tests\ClosedXML_Tests.csproj", "{09B066ED-E4A7-4545-A1A4-FF03DD524BDF}" EndProject Global GlobalSection(TeamFoundationVersionControl) = preSolution - SccNumberOfProjects = 7 SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} - SccTeamFoundationServer = https://tfs.codeplex.com/tfs/tfs09 SccLocalPath0 = . - SccProjectUniqueName1 = ClosedXML_Examples\\ClosedXML_Examples.csproj - SccProjectName1 = ClosedXML_Examples SccLocalPath1 = ClosedXML_Examples - SccProjectUniqueName2 = ClosedXML_Sandbox\\ClosedXML_Sandbox.csproj - SccProjectName2 = ClosedXML_Sandbox SccLocalPath2 = ClosedXML_Sandbox - SccProjectUniqueName3 = ClosedXML_Net3.5\\ClosedXML_Net3.5.csproj - SccProjectName3 = ClosedXML_Net3.5 SccLocalPath3 = ClosedXML_Net3.5 - SccProjectUniqueName4 = ClosedXML_Sandbox_VB\\ClosedXML_Sandbox_VB.vbproj - SccProjectName4 = ClosedXML_Sandbox_VB - SccLocalPath4 = ClosedXML_Sandbox_VB - SccProjectUniqueName5 = ClosedXML\\ClosedXML.csproj - SccProjectName5 = ClosedXML - SccLocalPath5 = ClosedXML - SccProjectUniqueName6 = ClosedXML_Tests\\ClosedXML_Tests.csproj - SccProjectName6 = ClosedXML_Tests - SccLocalPath6 = ClosedXML_Tests + SccLocalPath4 = ClosedXML + SccLocalPath5 = ClosedXML_Tests + SccNumberOfProjects = 6 + SccProjectName1 = ClosedXML_Examples + SccProjectName2 = ClosedXML_Sandbox + SccProjectName3 = ClosedXML_Net3.5 + SccProjectName4 = ClosedXML + SccProjectName5 = ClosedXML_Tests + SccProjectUniqueName1 = ClosedXML_Examples\\ClosedXML_Examples.csproj + SccProjectUniqueName2 = ClosedXML_Sandbox\\ClosedXML_Sandbox.csproj + SccProjectUniqueName3 = ClosedXML_Net3.5\\ClosedXML_Net3.5.csproj + SccProjectUniqueName4 = ClosedXML\\ClosedXML.csproj + SccProjectUniqueName5 = ClosedXML_Tests\\ClosedXML_Tests.csproj + SccTeamFoundationServer = https://tfs.codeplex.com/tfs/tfs09 EndGlobalSection GlobalSection(TestCaseManagementSettings) = postSolution CategoryFile = ClosedXML.vsmdi @@ -59,26 +54,10 @@ Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {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|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|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|Mixed Platforms.ActiveCfg = Debug|Any CPU + {03A518D0-1CB7-488E-861C-C4E782B27A46}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {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 @@ -91,6 +70,34 @@ {03A518D0-1CB7-488E-861C-C4E782B27A46}.Release|x64.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 + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|x64.ActiveCfg = Debug|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|x86.ActiveCfg = Debug|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|Any CPU.Build.0 = Release|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|x64.ActiveCfg = Release|Any CPU + {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|x86.ActiveCfg = Release|Any CPU + {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|Any CPU + {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {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|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|Any CPU + {38B882F0-E6F2-45C5-9BE9-CDC27FBEB4AB}.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 @@ -107,26 +114,10 @@ {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|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|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|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 - {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Debug|Mixed Platforms.Build.0 = Debug|x64 + {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Debug|x64.ActiveCfg = Debug|x64 {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Debug|x64.Build.0 = Debug|x64 {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Debug|x86.ActiveCfg = Debug|x86 @@ -139,18 +130,6 @@ {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|x64.Build.0 = Release|x64 {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|x86.ActiveCfg = Release|Any CPU {BD5E6BFE-E837-4A35-BCA9-39667D873A20}.Release|x86.Build.0 = Release|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|x64.ActiveCfg = Debug|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Debug|x86.ActiveCfg = Debug|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|Any CPU.Build.0 = Release|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|x64.ActiveCfg = Release|Any CPU - {09B066ED-E4A7-4545-A1A4-FF03DD524BDF}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs index c1e8e19..5ce3c52 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs @@ -235,9 +235,10 @@ /// IXLCell AddToNamed(String rangeName, XLScope scope, String comment); - //IXLCell CopyFrom(IXLCell otherCell); - + IXLCell CopyFrom(IXLCell otherCell); + IXLCell CopyFrom(String otherCell); IXLCell CopyTo(IXLCell target); + IXLCell CopyTo(String target); String ValueCached { get; } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs index 89cea6e..8ae8a6e 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs @@ -1027,12 +1027,6 @@ return this; } - public IXLCell CopyTo(IXLCell target) - { - target.Value = this; - return target; - } - public string ValueCached { get; internal set; } public IXLRichText RichText @@ -1588,6 +1582,39 @@ _comment = source._comment == null ? null : new XLComment(this, source._comment, source.Style.Font); } + private IXLCell GetTargetCell(String target, XLWorksheet defaultWorksheet) + { + var pair = target.Split('!'); + if (pair.Length == 1) + return defaultWorksheet.Cell(target); + + String wsName = pair[0]; + if (wsName.StartsWith("'")) + wsName = wsName.Substring(1, wsName.Length - 2); + return defaultWorksheet.Workbook.Worksheet(wsName).Cell(pair[1]); + } + + public IXLCell CopyTo(IXLCell target) + { + (target as XLCell).CopyFrom(this, true); + return target; + } + public IXLCell CopyTo(String target) + { + return CopyTo(GetTargetCell(target, Worksheet)); + } + + + public IXLCell CopyFrom(IXLCell otherCell) + { + return CopyFrom(otherCell as XLCell, true); + } + public IXLCell CopyFrom(String otherCell) + { + return CopyFrom(GetTargetCell(otherCell, Worksheet)); + } + + public IXLCell CopyFrom(XLCell otherCell, Boolean copyDataValidations) { var source = otherCell; @@ -1608,11 +1635,8 @@ if (copyDataValidations) { - using (var asRange = AsRange()) - { - if (source.Worksheet.DataValidations.Any(dv => dv.Ranges.Contains(asRange))) - DataValidation.CopyFrom(source.Worksheet.DataValidations.First(dv => dv.Ranges.Contains(asRange))); - } + using (var asRange = otherCell.AsRange()) + DataValidation.CopyFrom(asRange.DataValidation); } return this; diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs index d5b91ac..63cf3ec 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Ranges/XLRangeBase.cs @@ -1420,7 +1420,7 @@ } } } - public Int32 Marker; + protected void ShiftRows(IXLRangeAddress thisRangeAddress, XLRange shiftedRange, int rowsShifted) { if (thisRangeAddress.IsInvalid || shiftedRange.RangeAddress.IsInvalid) return;