@@ -125,7 +125,7 @@ public void ValidateEncodingForTableColumnNames()
125
125
ws . Cells [ "A1" ] . Value = "Col1>" ;
126
126
ws . Cells [ "B1" ] . Value = "Col1>" ;
127
127
var tbl = ws . Tables . Add ( ws . Cells [ "A1:C2" ] , "TableValColNames" ) ;
128
- Assert . AreEqual ( "Col1>" , tbl . Columns [ 0 ] . Name ) ;
128
+ Assert . AreEqual ( "Col1>" , tbl . Columns [ 0 ] . Name ) ;
129
129
Assert . AreEqual ( "Col1>" , tbl . Columns [ 1 ] . Name ) ;
130
130
Assert . AreEqual ( "Column3" , tbl . Columns [ 2 ] . Name ) ;
131
131
}
@@ -251,16 +251,16 @@ public void TableDeleteTest()
251
251
[ TestMethod ]
252
252
public void DeleteTablesFromTemplate ( )
253
253
{
254
- using ( var p = new ExcelPackage ( ) )
254
+ using ( var p = new ExcelPackage ( ) )
255
255
{
256
- var ws = p . Workbook . Worksheets . Add ( "Tablews1" ) ;
256
+ var ws = p . Workbook . Worksheets . Add ( "Tablews1" ) ;
257
257
ws . Tables . Add ( new ExcelAddressBase ( "A1:C3" ) , "Table1" ) ;
258
258
ws . Tables . Add ( new ExcelAddressBase ( "D1:G7" ) , "Table2" ) ;
259
259
260
260
Assert . AreEqual ( 2 , ws . Tables . Count ) ;
261
261
p . Save ( ) ;
262
262
263
- using ( var p2 = new ExcelPackage ( p . Stream ) )
263
+ using ( var p2 = new ExcelPackage ( p . Stream ) )
264
264
{
265
265
ws = p2 . Workbook . Worksheets [ 0 ] ;
266
266
Assert . AreEqual ( 2 , ws . Tables . Count ) ;
@@ -274,7 +274,7 @@ public void DeleteTablesFromTemplate()
274
274
Assert . AreEqual ( 0 , p3 . Workbook . Worksheets [ 0 ] . Tables . Count ) ;
275
275
}
276
276
}
277
- }
277
+ }
278
278
}
279
279
[ TestMethod ]
280
280
public void ValidateTableSaveLoad ( )
@@ -394,7 +394,47 @@ public void AddRowShouldAdjustSubtotals()
394
394
395
395
SaveAndCleanup ( package ) ;
396
396
}
397
+ }
398
+ [ TestMethod ]
399
+ public void ValidateCalculatedColumn ( )
400
+ {
401
+ using ( var package = OpenPackage ( "TableCalculatedColumn.xlsx" , true ) )
402
+ {
403
+ var sheet = package . Workbook . Worksheets . Add ( "Tables" ) ;
404
+
405
+ // headers
406
+ sheet . Cells [ "C1" ] . Value = "Month" ;
407
+ sheet . Cells [ "D1" ] . Value = "Sales" ;
408
+ sheet . Cells [ "E1" ] . Value = "VAT" ;
409
+ sheet . Cells [ "F1" ] . Value = "Total" ;
410
+ sheet . Cells [ "G1" ] . Value = "Formula" ;
411
+
412
+ var rnd = new Random ( ) ;
413
+ for ( var row = 2 ; row < 12 ; row ++ )
414
+ {
415
+ sheet . Cells [ row , 3 ] . Value = new DateTimeFormatInfo ( ) . GetMonthName ( row ) ;
416
+ sheet . Cells [ row , 4 ] . Value = rnd . Next ( 10000 , 100000 ) ;
417
+ sheet . Cells [ row , 5 ] . Formula = $ "D{ row } * 0.25";
418
+ sheet . Cells [ row , 6 ] . Formula = $ "D{ row } + E{ row } ";
419
+ }
420
+ sheet . Cells [ "D2:G13" ] . Style . Numberformat . Format = "#,##0.00" ;
421
+
422
+ var range = sheet . Cells [ "C1:G11" ] ;
397
423
424
+ // create the table
425
+ var table = sheet . Tables . Add ( range , "myTable" ) ;
426
+ // configure the table
427
+ table . ShowHeader = true ;
428
+ table . ShowTotal = true ;
429
+
430
+ var formula = "mytable[[#this row],[Sales]]+mytable[[#this row],[VAT]]" ;
431
+ table . Columns [ 4 ] . CalculatedColumnFormula = formula ;
432
+ Assert . AreEqual ( formula , table . Columns [ 4 ] . CalculatedColumnFormula ) ;
433
+ Assert . AreEqual ( formula , sheet . Cells [ "G2" ] . Formula ) ;
434
+ Assert . AreEqual ( formula , sheet . Cells [ "G3" ] . Formula ) ;
435
+ Assert . AreEqual ( formula , sheet . Cells [ "G11" ] . Formula ) ;
436
+ SaveAndCleanup ( package ) ;
437
+ }
398
438
}
399
439
}
400
440
}
0 commit comments