diff --git a/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj b/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj
index 193e78a..5f7d00c 100644
--- a/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj
+++ b/ClosedXML/ClosedXML/ClosedXML/ClosedXML.csproj
@@ -147,8 +147,6 @@
-
-
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Subtotals/Average.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Subtotals/Average.cs
deleted file mode 100644
index 5d002fc..0000000
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Subtotals/Average.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace ClosedXML.Excel.CalcEngine.Functions.Subtotals
-{
- class Average
- {
- public static Object GetSubtotal(List list)
- {
- var tally = new Tally();
- foreach (var e in list)
- {
- tally.Add(e);
- }
- return tally.Average();
- }
- }
-}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Subtotals/Subtotal.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Subtotals/Subtotal.cs
deleted file mode 100644
index 2b7e6ee..0000000
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Subtotals/Subtotal.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace ClosedXML.Excel.CalcEngine.Functions.Subtotals
-{
- abstract class Subtotal
- {
- protected readonly List exprList;
-
- protected Subtotal(List list)
- {
- exprList = list;
- }
- public abstract Object Evaluate();
-
- public static Object GetSubtotal(Int32 fId, List list)
- {
-
- switch (fId)
- {
- case 1:
- return Average.GetSubtotal(list);
- default:
- throw new ArgumentException("Function not supported.");
- }
- }
- }
-}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Text.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Text.cs
index dbd7ba4..dae361f 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Text.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/CalcEngine/Functions/Text.cs
@@ -11,6 +11,8 @@
public static void Register(CalcEngine ce)
{
//ce.RegisterFunction("ASC Changes full-width (double-byte) English letters or katakana within a character string to half-width (single-byte) characters
+ ce.RegisterFunction("ASC", 1, Asc);
+
//ce.RegisterFunction("BAHTTEXT Converts a number to text, using the ß (baht) currency format
ce.RegisterFunction("CHAR", 1, _Char); // Returns the character specified by the code number
//ce.RegisterFunction("CLEAN Removes all nonprintable characters from text
@@ -188,5 +190,10 @@
{
return double.Parse((string)p[0], NumberStyles.Any, CultureInfo.InvariantCulture);
}
+
+ static object Asc(List p)
+ {
+ return (string)p[0];
+ }
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLConditionalFormat.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLConditionalFormat.cs
index 4cd8dcf..408acd2 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLConditionalFormat.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/ConditionalFormats/XLConditionalFormat.cs
@@ -47,7 +47,7 @@
if (_style != null)
return _style;
- return _style = new XLStyle(this, Range.Worksheet.Workbook.GetStyleById(_styleCacheId));
+ return _style = new XLStyle(this, Range.Worksheet.Workbook.GetStyleById(_styleCacheId), false);
}
private void SetStyle(IXLStyle styleToUse)
{
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLBorder.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLBorder.cs
index f8cebdf..23f29ca 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLBorder.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLBorder.cs
@@ -25,7 +25,7 @@
{
}
- public XLBorder(IXLStylized container, IXLBorder defaultBorder)
+ public XLBorder(IXLStylized container, IXLBorder defaultBorder, Boolean useDefaultModify = true)
{
_container = container;
if (defaultBorder == null) return;
@@ -42,6 +42,23 @@
_diagonalBorderColor = new XLColor(defaultBorder.DiagonalBorderColor);
_diagonalUp = defaultBorder.DiagonalUp;
_diagonalDown = defaultBorder.DiagonalDown;
+
+ if (useDefaultModify)
+ {
+ var d = defaultBorder as XLBorder;
+ BottomBorderColorModified = d.BottomBorderColorModified;
+ BottomBorderModified = d.BottomBorderModified;
+ DiagonalBorderColorModified = d.DiagonalBorderColorModified;
+ DiagonalBorderModified = d.DiagonalBorderModified;
+ DiagonalDownModified = d.DiagonalDownModified;
+ DiagonalUpModified = d.DiagonalUpModified;
+ LeftBorderColorModified = d.LeftBorderColorModified;
+ LeftBorderModified = d.LeftBorderModified;
+ RightBorderColorModified = d.RightBorderColorModified;
+ RightBorderModified = d.RightBorderModified;
+ TopBorderColorModified = d.TopBorderColorModified;
+ TopBorderModified = d.TopBorderModified;
+ }
}
#region IXLBorder Members
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLFill.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLFill.cs
index d01c680..4eb318f 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLFill.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLFill.cs
@@ -147,14 +147,21 @@
{
}
- public XLFill(IXLStylized container, IXLFill defaultFill = null)
+ public XLFill(IXLStylized container, IXLFill defaultFill = null, Boolean useDefaultModify = true)
{
_container = container;
if (defaultFill == null) return;
_patternType = defaultFill.PatternType;
_patternColor = new XLColor(defaultFill.PatternColor);
_patternBackgroundColor = new XLColor(defaultFill.PatternBackgroundColor);
- PatternBackgroundColorModified = (defaultFill as XLFill).PatternBackgroundColorModified;
+
+ if (useDefaultModify)
+ {
+ var d = defaultFill as XLFill;
+ PatternBackgroundColorModified = d.PatternBackgroundColorModified;
+ PatternColorModified = d.PatternColorModified;
+ PatternTypeModified = d.PatternTypeModified;
+ }
}
#endregion
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLFont.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLFont.cs
index a363bec..be1463a 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLFont.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLFont.cs
@@ -22,7 +22,7 @@
{
}
- public XLFont(IXLStylized container, IXLFontBase defaultFont)
+ public XLFont(IXLStylized container, IXLFontBase defaultFont, Boolean useDefaultModify = true)
{
_container = container;
if (defaultFont == null) return;
@@ -37,6 +37,22 @@
_fontColor = new XLColor(defaultFont.FontColor);
_fontName = defaultFont.FontName;
_fontFamilyNumbering = defaultFont.FontFamilyNumbering;
+
+ if (useDefaultModify)
+ {
+ var d = defaultFont as XLFont;
+ if (d == null) return;
+ BoldModified = d.BoldModified;
+ ItalicModified = d.ItalicModified;
+ UnderlineModified = d.UnderlineModified;
+ StrikethroughModified = d.StrikethroughModified;
+ VerticalAlignmentModified = d.VerticalAlignmentModified;
+ ShadowModified = d.ShadowModified;
+ FontSizeModified = d.FontSizeModified;
+ FontColorModified = d.FontColorModified;
+ FontNameModified = d.FontNameModified;
+ FontFamilyNumberingModified = d.FontFamilyNumberingModified;
+ }
}
#region IXLFont Members
@@ -161,7 +177,15 @@
}
}
- public Boolean FontColorModified { get; set; }
+ private Boolean _fontColorModified;
+ public Boolean FontColorModified
+ {
+ get { return _fontColorModified; }
+ set
+ {
+ _fontColorModified = value;
+ }
+ }
public XLColor FontColor
{
get { return _fontColor; }
diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLStyle.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLStyle.cs
index bb74c50..5f67dd7 100644
--- a/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLStyle.cs
+++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Style/XLStyle.cs
@@ -1,17 +1,18 @@
-using System.Text;
+using System;
+using System.Text;
namespace ClosedXML.Excel
{
internal class XLStyle : IXLStyle
{
- public XLStyle(IXLStylized container, IXLStyle initialStyle = null)
+ public XLStyle(IXLStylized container, IXLStyle initialStyle = null, Boolean useDefaultModify = true)
{
if (initialStyle != null)
{
- Font = new XLFont(container, initialStyle.Font);
+ Font = new XLFont(container, initialStyle.Font, useDefaultModify);
Alignment = new XLAlignment(container, initialStyle.Alignment);
- Border = new XLBorder(container, initialStyle.Border);
- Fill = new XLFill(container, initialStyle.Fill);
+ Border = new XLBorder(container, initialStyle.Border, useDefaultModify);
+ Fill = new XLFill(container, initialStyle.Fill, useDefaultModify);
NumberFormat = new XLNumberFormat(container, initialStyle.NumberFormat);
Protection = new XLProtection(container, initialStyle.Protection);
}
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/CalcEngine/FunctionsTests.cs b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/CalcEngine/FunctionsTests.cs
index 8812a53..b48a7e9 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/CalcEngine/FunctionsTests.cs
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Excel/CalcEngine/FunctionsTests.cs
@@ -418,5 +418,14 @@
actual = XLWorkbook.EvaluateExpr(@"SumSq(3,4)");
Assert.AreEqual(25.0, actual);
}
+
+ [TestMethod]
+ public void Asc()
+ {
+ Object actual;
+
+ actual = XLWorkbook.EvaluateExpr(@"Asc(""Text"")");
+ Assert.AreEqual("Text", actual);
+ }
}
}
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFColorScaleLowHigh.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFColorScaleLowHigh.xlsx
index 0081bfd..5702dc1 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFColorScaleLowHigh.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFColorScaleLowHigh.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFColorScaleLowMidHigh.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFColorScaleLowMidHigh.xlsx
index 87f8d4f..1bb1b0b 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFColorScaleLowMidHigh.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFColorScaleLowMidHigh.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFDataBar.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFDataBar.xlsx
index c6803d4..caf1410 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFDataBar.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFDataBar.xlsx
Binary files differ
diff --git a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFIconSet.xlsx b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFIconSet.xlsx
index 8034b13..11a2bbf 100644
--- a/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFIconSet.xlsx
+++ b/ClosedXML/ClosedXML/ClosedXML_Tests/Resource/Examples/ConditionalFormatting/CFIconSet.xlsx
Binary files differ