我在尝试使用oledb之后才开始使用epplus库,然后尝试了互操作。
以下是我的工作
public void editExcel_VariablesEEP()
{
try
{
FileInfo newFile = new FileInfo(excelQuotePath);
ExcelPackage pck = new ExcelPackage(newFile);
var energyCalculation = pck.Workbook.Worksheets[4];
var ROI = pck.Workbook.Worksheets[3];
var NPV = pck.Workbook.Worksheets[2];
var Summary = pck.Workbook.Worksheets[1];
energyCalculation.Cells["B5"].Value = Convert.ToDecimal(numericUpDown1.Value);
energyCalculation.Cells["B6"].Value = numericUpDown2.Value;
energyCalculation.Cells["B7"].Value = numericUpDown3.Value;
energyCalculation.Cells["B8"].Value = numericUpDown4.Value;
NPV.Cells["B12"].Value = (numericUpDown5.Value/100);
NPV.Cells["B13"].Value = (numericUpDown6.Value / 100);
NPV.Cells["B14"].Value = (numericUpDown7.Value / 100);
energyCalculation.Cells["F40"].Value = (numericUpDown8.Value / 100);
energyCalculation.Cells["L5"].Value = numericUpDown9.Value;
energyCalculation.Cells["G60"].Value = (comboBox1.Text);
Summary.Cells["K2"].Value = (quoteName.Text);
pck.Save();
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
由于未知原因,它将正确保存,Visual Studio中不会显示任何错误。但是当我打开xlsx文件时,我看到“文件已损坏”提示。然后我同意修复,错误显示为 - 删除部分:绘图形状。但是当我查看excel时,所有数据都存在并被计算在内。
如果您熟悉这一点,请提供帮助。
感谢。
//测试更新 为了继续,我正在做的事情,我将模板xlsx文件复制到另一个文件夹,我运行上面发布的代码并保存。我加载新编辑的xlsx文件并显示错误。我确认修复然后保存/覆盖它。然后我再次运行程序,但我反而将它指回文件。它节省了。我跑,并没有出现错误。发生了一些事情,我不知道是什么。
// UPDATE2
那么,到目前为止发生了什么。该描述中的错误是正确的。这是一个造成问题的形象。我完全忽视它,因为它是一个小图像。我必须做的修复是通过右键单击图像来更改“大小和属性”菜单中的某些设置。在属性选项卡下,我选中了“不要移动或使用单元格调整大小”,并选中了打印对象和锁定的复选框。最后,在尺寸标签下,我检查了“锁定纵横比”。加载时没有显示错误。但是观察文件大小,看起来图像没有“保存”,因为每次打开excel然后关闭时,即使我没有做任何更改,它也要求保存。确认保存,文件大小不同(大小增加)。测试这个'奇怪的保存'是否会影响重新打开文件或进一步编辑,我尝试了,并且很好。没有问题,重新开放。但是'奇怪的保存'仍然存在。