Таблицы EPPlus, скопированные в новую книгу, остаются выбранными при открытии в Excel - PullRequest
1 голос
/ 04 апреля 2020

Вот проблема:

Я копирую листы из другой книги в новый ExcelPackage и сохраняю этот новый пакет. Когда я открываю этот пакет в Excel, скопированные листы отображаются выделенными.

См. OutFile.xlsx здесь: https://1drv.ms/u/s! Aoz3mqCqpAZbjldtXKcClJkstXQK? E = yL4vQR

Как отменить выбор всех рабочих листов в EPPlus перед сохранением рабочей книги?

Я использую EPPlus v4.5.3.3

Вот код, иллюстрирующий проблему:

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();

1 Ответ

0 голосов
/ 06 апреля 2020

Кажется, epplus выбирает скопированную вкладку по умолчанию. Просто нужно получить лист, который вы можете сделать с помощью вызова Add, и попросить его отменить выбор:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...