使用Excel 2013,EPPlus 4.5.3。
我有一个现有的简单excel文件,该文件的一个数据表称为“数据”,该数据表具有格式化的列并准备接受数据(对于要放入其中的数据,列设置为Date,Numeric等)。
该文件在名为“分析”的工作表上有2个图表。图表引用了“数据”工作表中的行和列。
通过这种方式,我希望使用EPPLus来填充“数据”表中的行,并且图表将正确显示。我已经手动测试了这一点,输入了数据,是的,图表可以正常工作。
使用此代码:
public void CreatePackageWithDataSheet(MemoryStream outputStream, IEnumerable<object[]> data,
string sheetName = "Data", string firstLine = null, int? firstColumn = null)
{
using (var package = new ExcelPackage(outputStream))
{
var workSheet = package.Workbook.Worksheets.Add(sheetName);
workSheet.Cells[(firstLine ?? "A") + (firstColumn ?? 1)] // A1 if not specified
.LoadFromArrays(data.Skip(1)); // skip types
package.Save();
}
}
可数数据是我将在工作表中放入的行和列数据的数组...
使用此代码,工作表“数据”上的单元格的数据类型格式将重置为“常规”,图表不显示数据,并且它们将丢失所有格式,甚至是我在其中的静态图像文件被拉出位置。整个过程看起来一团糟。
我在做什么错?如何仅执行简单的将数据放入行和列的操作,而不会破坏文件的其余部分?