【问题标题】:EPPlus Worksheets copied into a new workbook remain selected when opened in Excel复制到新工作簿中的 EPPlus 工作表在 Excel 中打开时保持选中状态
【发布时间】:2020-04-04 11:55:20
【问题描述】:

问题来了:

我将另一个工作簿中的工作表复制到一个新的 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();

【问题讨论】:

    标签: epplus


    【解决方案1】:

    似乎 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多