diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs index 1f2caba..e5d18c9 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/IXLCell.cs @@ -127,12 +127,16 @@ /// The formula with A1 references. String FormulaA1 { get; set; } + IXLCell SetFormulaA1(String formula); + /// /// Gets or sets the cell's formula with R1C1 references. /// /// The formula with R1C1 references. String FormulaR1C1 { get; set; } + IXLCell SetFormulaR1C1(String formula); + /// /// Returns this cell as an IXLRange. /// diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs index 1cbc686..c52ace6 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCell.cs @@ -1052,7 +1052,8 @@ public Boolean IsMerged() { - return Worksheet.Internals.MergedRanges.Any(AsRange().Intersects); + using (var asRange = AsRange()) + return Worksheet.Internals.MergedRanges.Any(asRange.Intersects); } public Boolean IsEmpty() @@ -1231,7 +1232,10 @@ private void ClearMerged() { - var mergeToDelete = Worksheet.Internals.MergedRanges.Where(merge => merge.Intersects(AsRange())).ToList(); + List mergeToDelete; + using (var asRange = AsRange()) + mergeToDelete = Worksheet.Internals.MergedRanges.Where(merge => merge.Intersects(asRange)).ToList(); + mergeToDelete.ForEach(m => Worksheet.Internals.MergedRanges.Remove(m)); } @@ -2167,5 +2171,17 @@ } #endregion + + public IXLCell SetFormulaA1(String formula) + { + FormulaA1 = formula; + return this; + } + + public IXLCell SetFormulaR1C1(String formula) + { + FormulaR1C1 = formula; + return this; + } } } \ No newline at end of file diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCellsCollection.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCellsCollection.cs index 35e4122..4ac6497 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCellsCollection.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Cells/XLCellsCollection.cs @@ -198,6 +198,7 @@ { int finalRow = rowEnd > MaxRowUsed ? MaxRowUsed : rowEnd; int finalColumn = columnEnd > MaxColumnUsed ? MaxColumnUsed : columnEnd; + for (int ro = finalRow; ro >= rowStart; ro--) { for (int co = finalColumn; co >= columnStart; co--) diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Comments/XLComment.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Comments/XLComment.cs index a644ad0..b93319f 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Comments/XLComment.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Comments/XLComment.cs @@ -59,7 +59,19 @@ public Int32 ExtentWidth { get; set; } public Int32 ShapeId { get; internal set; } - public Boolean Visible { get; set; } + private Boolean _visible; + + public Boolean Visible + { + get + { + return _visible; + } + set + { + _visible = value; + } + } public IXLComment SetVisible() { diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs index cf57850..1c3e8aa 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook.cs @@ -5,6 +5,7 @@ namespace ClosedXML.Excel { using System.Linq; + using System.Data; public enum XLEventTracking { Enabled, Disabled } public enum XLCalculateMode @@ -646,5 +647,23 @@ Use1904DateSystem = value; return this; } + + public IXLWorksheet AddWorksheet(String sheetName) + { + return Worksheets.Add(sheetName); + } + + public IXLWorksheet AddWorksheet(String sheetName, Int32 position) + { + return Worksheets.Add(sheetName, position); + } + public IXLWorksheet AddWorksheet(DataTable dataTable) + { + return Worksheets.Add(dataTable); + } + public void AddWorksheet(DataSet dataSet) + { + Worksheets.Add(dataSet); + } } } \ No newline at end of file diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs index d2c89a4..ac7d02d 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs @@ -352,7 +352,7 @@ if (strokeWeight != null) drawing.Style.ColorsAndLines.LineWeight = Double.Parse(strokeWeight.Value.Substring(0, strokeWeight.Value.Length - 2), CultureInfo.InvariantCulture); var fillColor = shape.Attribute("fillcolor"); - if (fillColor != null) drawing.Style.ColorsAndLines.FillColor = XLColor.FromHtml(fillColor.Value); + if (fillColor != null && !fillColor.Value.ToLower().Contains("infobackground")) drawing.Style.ColorsAndLines.FillColor = XLColor.FromHtml(fillColor.Value); var fill = shape.Elements().First(e => e.Name.LocalName == "fill"); if (fill != null) @@ -486,7 +486,7 @@ LoadDrawingProtection(drawing, clientData); var visible = clientData.Elements().FirstOrDefault(e => e.Name.LocalName == "Visible"); - drawing.Visible = !(visible != null && visible.Value.ToLower() == "false"); + drawing.Visible = visible != null && visible.Value.ToLower().StartsWith("t"); LoadDrawingHAlignment(drawing, clientData); LoadDrawingVAlignment(drawing, clientData);