Here's the problem:
I copy worksheets from another workbook into a new ExcelPackage and save that new package. When I open that package in Excel, the sheets that were copied appear selected.
See OutFile.xlsx here: https://1drv.ms/u/s!Aoz3mqCqpAZbjldtXKcClJkstXQK?e=yL4vQR
How do I deselect all worksheets in EPPlus before saving the workbook?
I am using EPPlus v4.5.3.3
Here's code to illustrate the problem:
ExcelPackage xlPackage = new ExcelPackage();
ExcelWorkbook xlWorkbook = xlPackage.Workbook;
xlWorkbook.Worksheets.Add("AddedSheet1");
xlWorkbook.Worksheets.Add("AddedSheet2");
xlWorkbook.Worksheets.Add("AddedSheet3");
ExcelPackage sourcePackage = new ExcelPackage(new FileInfo(@"c:\temp\AnyBlankExcelFile.xlsx"));
ExcelWorksheet sheet1 = sourcePackage.Workbook.Worksheets["Sheet1"];
xlWorkbook.Worksheets.Add("Copied1", sheet1);
xlWorkbook.Worksheets.Add("Copied2", sheet1);
xlWorkbook.Worksheets.Add("Copied3", sheet1);
xlWorkbook.Worksheets.Add("AddedSheet4");
xlPackage.SaveAs(new FileInfo(@"C:\temp\OutFile.xlsx"));
xlPackage.Dispose();
sourcePackage.Dispose();
Seems epplus selects the copied tab by default. Just need to get the worksheet which you can do with the Add
call and tell it to unselect:
var c1 = xlWorkbook.Worksheets.Add("Copied1", sheet1);
c1.View.SetTabSelected(false);
var c2 = xlWorkbook.Worksheets.Add("Copied2", sheet1);
c2.View.SetTabSelected(false);
var c3 = xlWorkbook.Worksheets.Add("Copied3", sheet1);
c3.View.SetTabSelected(false);