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);