Skip to content

Commit d386844

Browse files
authored
Fixed bug added standard test (#1511)
1 parent b54bb75 commit d386844

File tree

2 files changed

+46
-8
lines changed

2 files changed

+46
-8
lines changed

src/EPPlus/Core/Worksheet/WorksheetRangeInsertHelper.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ internal static void InsertRow(ExcelWorksheet ws, int rowFrom, int rows, int cop
6060
InsertFilterAddress(range, affectedAddress, eShiftTypeInsert.Down);
6161
InsertSparkLinesAddress(range, eShiftTypeInsert.Down, affectedAddress);
6262
InsertDataValidation(range, eShiftTypeInsert.Down, affectedAddress, ws, false);
63-
InsertConditionalFormatting(range, eShiftTypeInsert.Down, affectedAddress, ws, false);
63+
InsertConditionalFormatting(range, eShiftTypeInsert.Down, affectedAddress, ws, true);
6464

6565
WorksheetRangeCommonHelper.AdjustDvAndCfFormulasRow(ws, rowFrom, rows);
6666

@@ -220,7 +220,7 @@ internal static void Insert(ExcelRangeBase range, eShiftTypeInsert shift, bool s
220220

221221
private static void InsertConditionalFormatting(ExcelRangeBase range, eShiftTypeInsert shift, ExcelAddressBase effectedAddress, ExcelWorksheet ws, bool isTable)
222222
{
223-
var delCF = new List<ConditionalFormatting.Contracts.IExcelConditionalFormattingRule>();
223+
var delCF = new List<IExcelConditionalFormattingRule>();
224224
//Update Conditional formatting references
225225
foreach (var cf in ws.ConditionalFormatting)
226226
{
@@ -399,7 +399,7 @@ private static ExcelAddressBase InsertSplitIndividualAddress(ExcelAddressBase ad
399399
{
400400
if (address.CollideFullColumn(range._fromCol, range._toCol) && (shift == eShiftTypeInsert.Down || shift == eShiftTypeInsert.EntireRow))
401401
{
402-
return address.AddRow(range._fromRow, range.Rows,false,false, isTable);
402+
return address.AddRow(range._fromRow, range.Rows, false, false, isTable);
403403
}
404404
else if (address.CollideFullRow(range._fromRow, range._toRow) && (shift == eShiftTypeInsert.Right || shift == eShiftTypeInsert.EntireColumn))
405405
{

src/EPPlusTest/ConditionalFormatting/ConditionalFormattingTests.cs

+43-5
Original file line numberDiff line numberDiff line change
@@ -1839,15 +1839,15 @@ public void GetCFFromRange()
18391839
{
18401840
var sheet = pck.Workbook.Worksheets.Add("basicSheet");
18411841

1842-
for(int i = 1; i < 2100; i++)
1842+
for (int i = 1; i < 2100; i++)
18431843
{
18441844
sheet.Cells[1, i].ConditionalFormatting.AddContainsBlanks();
18451845
sheet.Cells[i, 1].ConditionalFormatting.AddBottomPercent();
18461846
sheet.Cells[1, i].ConditionalFormatting.AddDatabar(Color.Red);
18471847
}
18481848

18491849
var dictCon = sheet.Cells["A1:E5"].ConditionalFormatting.GetConditionalFormattings();
1850-
Assert.AreEqual(sheet.Cells["A1"].ConditionalFormatting.GetConditionalFormattings()[0].Type,
1850+
Assert.AreEqual(sheet.Cells["A1"].ConditionalFormatting.GetConditionalFormattings()[0].Type,
18511851
eExcelConditionalFormattingRuleType.ContainsBlanks);
18521852
}
18531853
}
@@ -2139,7 +2139,7 @@ public void PivotTableFlagShouldStickWhenReadIn()
21392139
[TestMethod]
21402140
public void DoubleQuoteInNumfmtWriteReadExt()
21412141
{
2142-
using(var package = OpenPackage("CF_NumFt_ReadWrite.xlsx", true))
2142+
using (var package = OpenPackage("CF_NumFt_ReadWrite.xlsx", true))
21432143
{
21442144
var sheet = package.Workbook.Worksheets.Add("numfmt");
21452145
package.Workbook.Worksheets.Add("Sheet2");
@@ -2164,12 +2164,50 @@ public void DoubleQuoteInNumfmtWriteReadExt()
21642164
[TestMethod]
21652165
public void EnsureBgAndPatternColorAreCorrect()
21662166
{
2167-
using(var p = OpenTemplatePackage("SavedDXF.xlsx"))
2167+
using (var p = OpenTemplatePackage("SavedDXF.xlsx"))
21682168
{
21692169
var ws = p.Workbook.Worksheets[0];
21702170
var fill = ws.Cells["B1"].ConditionalFormatting.GetConditionalFormattings()[0].Style.Fill;
21712171
Assert.AreEqual(fill.BackgroundColor.Theme, eThemeSchemeColor.Text2);
2172-
Assert.AreEqual(fill.PatternColor.Color, Color.FromArgb(255,192,0,0));
2172+
Assert.AreEqual(fill.PatternColor.Color, Color.FromArgb(255, 192, 0, 0));
2173+
}
2174+
}
2175+
2176+
//s695
2177+
[TestMethod]
2178+
public void SingularRangeShouldExtendOnInsert()
2179+
{
2180+
using (var p = OpenTemplatePackage("s695.xlsx"))
2181+
{
2182+
var targetSheet = p.Workbook.Worksheets["Data Sheet"];
2183+
2184+
int lastRow = targetSheet.Dimension.End.Row;
2185+
2186+
targetSheet.InsertRow(lastRow + 1, 5);
2187+
2188+
Assert.AreEqual("C8:C17", targetSheet.ConditionalFormatting[1].Address.Address);
2189+
2190+
SaveAndCleanup(p);
2191+
}
2192+
}
2193+
2194+
[TestMethod]
2195+
public void SingularRangeShouldExtendOnInsertGenerated()
2196+
{
2197+
using (var p = OpenPackage("cf_SingularRangeExtendOnInsert.xlsx", true))
2198+
{
2199+
var targetSheet = p.Workbook.Worksheets.Add("Data Sheet");
2200+
2201+
var blanks = targetSheet.Cells["A2:A5"].ConditionalFormatting.AddContainsBlanks();
2202+
2203+
blanks.Style.Fill.PatternType = ExcelFillStyle.Solid;
2204+
blanks.Style.Fill.BackgroundColor.SetColor(Color.BlueViolet);
2205+
2206+
targetSheet.InsertRow(6, 5);
2207+
2208+
Assert.AreEqual("A2:A10", targetSheet.ConditionalFormatting[0].Address.Address);
2209+
2210+
SaveAndCleanup(p);
21732211
}
21742212
}
21752213
}

0 commit comments

Comments
 (0)