@@ -37,7 +37,7 @@ Date Author Change
37
37
namespace EPPlusTest
38
38
{
39
39
[ TestClass ]
40
- public class WorksheetsTests
40
+ public class WorksheetsTests : TestBase
41
41
{
42
42
private ExcelPackage package ;
43
43
private ExcelWorkbook workbook ;
@@ -200,5 +200,121 @@ public void CheckAddedWorksheetWithInvalidName()
200
200
201
201
Assert . IsNotNull ( workbook . Worksheets [ "[NEW2]" ] ) ;
202
202
}
203
+
204
+ [ TestMethod ]
205
+ public void DeletingSheetMovesSelectedSheetCorrectly ( )
206
+ {
207
+ using ( var package = OpenPackage ( "deletedSheets.xlsx" , true ) )
208
+ {
209
+ package . Workbook . Worksheets . Add ( "VisibleSheet1" ) ;
210
+ package . Workbook . Worksheets . Add ( "HiddenSheet1" ) . Hidden = eWorkSheetHidden . Hidden ;
211
+ package . Workbook . Worksheets . Add ( "VisibleSheet2" ) ;
212
+ package . Workbook . Worksheets . Add ( "HiddenSheet2" ) . Hidden = eWorkSheetHidden . Hidden ;
213
+ package . Workbook . Worksheets . Add ( "HiddenSheet3" ) . Hidden = eWorkSheetHidden . VeryHidden ;
214
+ package . Workbook . Worksheets . Add ( "VisibleSheet3" ) ;
215
+ package . Workbook . Worksheets . Add ( "VisibleSheet4" ) ;
216
+ package . Workbook . Worksheets . Add ( "HiddenSheet4" ) . Hidden = eWorkSheetHidden . Hidden ;
217
+ package . Workbook . View . ActiveTab = 2 ;
218
+ package . Workbook . Worksheets . Delete ( "VisibleSheet2" ) ;
219
+ Assert . AreEqual ( 4 , package . Workbook . View . ActiveTab ) ;
220
+ package . Workbook . View . ActiveTab = package . Workbook . Worksheets . GetByName ( "VisibleSheet4" ) . Index ;
221
+ package . Workbook . Worksheets . Delete ( "VisibleSheet4" ) ;
222
+ Assert . AreEqual ( package . Workbook . Worksheets . GetByName ( "VisibleSheet3" ) . Index , package . Workbook . View . ActiveTab ) ;
223
+ package . Workbook . Worksheets . Delete ( "HiddenSheet4" ) ;
224
+ Assert . AreEqual ( package . Workbook . Worksheets . GetByName ( "VisibleSheet3" ) . Index , package . Workbook . View . ActiveTab ) ;
225
+ package . Workbook . Worksheets . Delete ( "VisibleSheet3" ) ;
226
+ Assert . AreEqual ( 0 , package . Workbook . View . ActiveTab ) ;
227
+ SaveAndCleanup ( package ) ;
228
+ }
229
+ }
230
+
231
+ [ TestMethod ]
232
+ public void DeletingSheetBeforeSelectedSheetMovesCorrectly ( )
233
+ {
234
+ using ( var package = OpenPackage ( "deletedSheets.xlsx" , true ) )
235
+ {
236
+ package . Workbook . Worksheets . Add ( "VisibleSheet1" ) ;
237
+ package . Workbook . Worksheets . Add ( "HiddenSheet1" ) . Hidden = eWorkSheetHidden . Hidden ;
238
+ package . Workbook . Worksheets . Add ( "VisibleSheet2" ) ;
239
+ package . Workbook . Worksheets . Add ( "HiddenSheet2" ) . Hidden = eWorkSheetHidden . Hidden ;
240
+ package . Workbook . Worksheets . Add ( "HiddenSheet3" ) . Hidden = eWorkSheetHidden . VeryHidden ;
241
+ package . Workbook . Worksheets . Add ( "VisibleSheet3" ) ;
242
+ package . Workbook . Worksheets . Add ( "VisibleSheet4" ) ;
243
+ package . Workbook . Worksheets . Add ( "HiddenSheet4" ) . Hidden = eWorkSheetHidden . Hidden ;
244
+
245
+ package . Workbook . View . ActiveTab = 2 ;
246
+
247
+ package . Workbook . Worksheets . Delete ( "VisibleSheet1" ) ;
248
+
249
+ Assert . AreEqual ( 1 , package . Workbook . View . ActiveTab ) ;
250
+
251
+ package . Workbook . View . ActiveTab = 4 ;
252
+
253
+ package . Workbook . Worksheets . Delete ( "HiddenSheet3" ) ;
254
+
255
+ Assert . AreEqual ( package . Workbook . Worksheets . GetByName ( "VisibleSheet3" ) . Index , package . Workbook . View . ActiveTab ) ;
256
+
257
+ package . Workbook . Worksheets . Delete ( "VisibleSheet4" ) ;
258
+ package . Workbook . Worksheets . Delete ( "VisibleSheet3" ) ;
259
+
260
+ Assert . AreEqual ( package . Workbook . Worksheets . GetByName ( "VisibleSheet2" ) . Index , package . Workbook . View . ActiveTab ) ;
261
+
262
+ SaveAndCleanup ( package ) ;
263
+ }
264
+ }
265
+
266
+ [ TestMethod ]
267
+ public void DeletedSheetMovesCorrectlyIsWorksheet1Based ( )
268
+ {
269
+ using ( var package = OpenPackage ( "deletedSheets.xlsx" , true ) )
270
+ {
271
+ package . Compatibility . IsWorksheets1Based = true ;
272
+
273
+ package . Workbook . Worksheets . Add ( "VisibleSheet1" ) ;
274
+ package . Workbook . Worksheets . Add ( "VisibleSheet2" ) ;
275
+ package . Workbook . Worksheets . Add ( "HiddenSheet2" ) . Hidden = eWorkSheetHidden . Hidden ;
276
+ package . Workbook . Worksheets . Add ( "HiddenSheet3" ) . Hidden = eWorkSheetHidden . VeryHidden ;
277
+ package . Workbook . Worksheets . Add ( "VisibleSheet3" ) ;
278
+ package . Workbook . Worksheets . Add ( "VisibleSheet4" ) ;
279
+ package . Workbook . Worksheets . Add ( "HiddenSheet4" ) . Hidden = eWorkSheetHidden . Hidden ;
280
+
281
+ package . Workbook . View . ActiveTab = 5 ;
282
+
283
+ package . Workbook . Worksheets . Delete ( "HiddenSheet4" ) ;
284
+
285
+ Assert . AreEqual ( 5 , package . Workbook . View . ActiveTab ) ;
286
+
287
+ package . Workbook . Worksheets . Delete ( "VisibleSheet4" ) ;
288
+
289
+ Assert . AreEqual ( 4 , package . Workbook . View . ActiveTab ) ;
290
+
291
+ package . Workbook . View . ActiveTab = 1 ;
292
+
293
+ package . Workbook . Worksheets . Delete ( "VisibleSheet2" ) ;
294
+
295
+ Assert . AreEqual ( 3 , package . Workbook . View . ActiveTab ) ;
296
+
297
+ package . Workbook . View . ActiveTab = 0 ;
298
+
299
+ package . Workbook . Worksheets . Delete ( "VisibleSheet1" ) ;
300
+
301
+ Assert . AreEqual ( 2 , package . Workbook . View . ActiveTab ) ;
302
+
303
+ SaveAndCleanup ( package ) ;
304
+ }
305
+ }
306
+ [ TestMethod ]
307
+ [ ExpectedException ( typeof ( InvalidOperationException ) ) ]
308
+ public void NoVisibleSheetShouldThrow ( )
309
+ {
310
+ using ( var package = new ExcelPackage ( "ExceptionSheet.xlsx" ) )
311
+ {
312
+ package . Workbook . Worksheets . Add ( "VisibleSheet1" ) ;
313
+ package . Workbook . Worksheets . Add ( "HiddenSheet1" ) . Hidden = eWorkSheetHidden . Hidden ;
314
+ package . Workbook . Worksheets . Add ( "HiddenSheet2" ) . Hidden = eWorkSheetHidden . Hidden ;
315
+ package . Workbook . Worksheets . Delete ( 0 ) ;
316
+ package . Save ( ) ;
317
+ }
318
+ }
203
319
}
204
320
}
0 commit comments