首页 > 解决方案 > EPPlus - InsertColumn 函数无法正确复制样式

问题描述

在使用了一些 MS Interop Excel 经验后,我切换到了 EPPlus 4.5.3.3。到目前为止,我对结果非常满意。但是,当我想在已经存在的 Excel 文件中插入新列时,只会复制第一个单元格的样式。

我在调查过程中还发现已经存在类似的问题: https ://epplus4.rssing.com/chan-7547932/all_p76.html

此外,InsertRows 似乎有一个错误: https ://github.com/JanKallman/EPPlus/issues/288

InsertColumn 函数是否有任何已知错误?如果是这样,是否有任何解决方法?如果没有,我的代码中缺少什么?

我的代码如下所示:

            FileInfo newFile = new FileInfo(outputName);
            ExcelPackage excel = new ExcelPackage(newFile);
            ExcelWorkbook wb = excel.Workbook;
            ExcelWorksheet y = wb.Worksheets.First();
            y.InsertColumn(1, 1, 2); 
            y.Cells[1, 1].Value = "Test1";
            y.Cells[2, 1].Value = "Test2";
            y.Cells[3, 1].Value = "Test3";

第一个屏幕截图显示了预期的结果:

预期结果

虽然这是我的实际结果:

实际结果

非常感谢您的任何建议:)

标签: c#.netexcel.net-coreepplus

解决方案


问题是我使用的是从 B 列开始的表(最初是“A”列 - 在添加上面的列之前)。添加其他列时,表未扩展到新范围。通过将表格改回正常范围,一切都按预期工作并且样式被复制。

使用 MSFT Interop Excel 时,只需在新列中添加任何内容即可自动处理此问题。


推荐阅读