0

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

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

COL1, COl2

MICK1,=A2

MICk2,=A3

Sheet1中的数据被定义为一个表——Table1 =$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 没有正确地带入公式?

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

请让我知道当公式在表格中时如何正确输入数据?

4

2 回答 2

0

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

COL1, COl2

MICK1,=[COL1]

MICk2,=[COL1]

它带来了正确的结果。

于 2016-09-13T09:18:54.373 回答
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();

(顺便说一句 - 将 an 包装IDisposable在一个using{}块中而不是显式调用是正常的.Dispose()- 你的代码,你的决定)

于 2016-09-12T16:47:26.020 回答