我想创建一个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,访问设计菜单,转换为范围,保存。
请告诉我如何在公式表中正确显示数据?
答案 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]
它带来了正确的结果。