EPPlus - Creata一个新文件,当源数据在数据表中时,Formula在所有行中保持相同

时间:2016-09-12 15:52:51

标签: c# excel epplus epplus-4

我想创建一个excel文件的副本[p.xlsx]。它有两个电子表格 - sheet1和sheet2。我使用p.xlsx作为模板文件创建另一个文件perror.xlsx。

Sheet1数据如下(第二列有公式):

  

COL1,COl2

     

MICK1,= A2

     

MICk2,= A3

Sheet1中的数据定义为表格 - 表1 = $ A:$ B

Sheet2是"未定义"作为一个表,数据再次相同

  

COL1,COl2

     

MICK1,= A2

     

MICk2,= A3

执行如下代码:

string ErrFileName = @"C:\\TEMP\\pErrors.xlsx";  //Destination file
FileInfo errorFile = new FileInfo(ErrFileName);

string templatefile = @"C:\\TEMP\\p.xlsx";   //Source file
FileInfo template = new FileInfo(templatefile);

ExcelPackage errorExcelFile = new ExcelPackage(errorFile, template);

errorExcelFile.Save();
errorExcelFile.Dispose();

当我打开perror.xlsx文件时,我将sheet1中的数据视为

  

COL1,COl2

     

MICK1,MICK1

     

MICk2,MICK1

分析了公式,结果发现:

  

COL1,COl2

     

MICK1,= A2

     

MICk2,= A2

但是sheet2填充正确。

  

COL1,COl2

     

MICK1,MICK1

     

MICk2,MICK2

这是否意味着当数据在表格中时,EPPLUS没有正确地使用公式?

只有在源文件中我才能在sheet1中打开它,才能正确地将数据带入sheet1中,单击sheet1,访问设计菜单,转换为范围,保存。

请告诉我如何在公式表中正确显示数据?

2 个答案:

答案 0 :(得分:0)

我并非100%确定我明白您要尝试实现的目标,但您可以使用SaveAs()

string ErrFileName = @"C:\\TEMP\\pErrors.xlsx";  //Destination file
FileInfo errorFile = new FileInfo(ErrFileName);

string templatefile = @"C:\\TEMP\\p.xlsx";   //Source file
FileInfo template = new FileInfo(templatefile);

ExcelPackage templateFile = new ExcelPackage(template);
templateFile.SaveAs(errorFile);
errorExcelFile.Dispose();

(顺便说一下 - 将IDisposable包裹在using{}块中而不是明确调用.Dispose() - 您的代码,您的决定是正常的

是正常的。

答案 1 :(得分:0)

当数据在表格中时,需要在COL2中更改公式

COL1, COl2

MICK1,=[COL1]

MICk2,=[COL1]

它带来了正确的结果。