我有一个批处理作业,它通过循环遍历电子表格逐行处理每个记录。根据结果,我想在每个记录的最后一列中留下评论。
当程序运行时,通过监视此单元格中的值,我可以知道适当的更改正在进行。但是,在运行
看起来他们构建了EPPlus以便于保存您的更改,所以我不确定自己做错了什么。
以下是我打开电子表格的方法:
当程序运行时,通过监视此单元格中的值,我可以知道适当的更改正在进行。但是,在运行
.Save()
函数后,我打开电子表格,发现每列看起来与程序运行之前完全相同。看起来他们构建了EPPlus以便于保存您的更改,所以我不确定自己做错了什么。
以下是我打开电子表格的方法:
if (File.Exists(path))
{
try
{
//Connect to spreadsheet
FileStream _stream = File.Open(path, FileMode.Open, FileAccess.ReadWrite);
FileInfo file = new FileInfo(path);
}
catch (IOException)
{
SendEmail.OkMail("Spreadsheet is currently in use. Please close and try again.");
//Exit program
Environment.Exit(0);
}
//Pull data into EPPlus object
_package = new ExcelPackage();
_package.Load(_stream);
_sheet = _package.Workbook.Worksheets.First();
}
else
{
//Notify user and exit program
SendEmail.OkMail("Cannot find file in requested directory. Please check and try again.");
//Exit program
Environment.Exit(0);
}
这段代码会做出相应的更改。通过查看代码,我可以发现正确的值被存储在正确的ExcelWorkSheet
对象命名为_sheet
的单元格中。
//Figure out what type of update occurred
if (ignore == (_noUpdates - 1))
{
_sheet.Cells[row, col + 11].Value = "Ignore";
}
else if (add == (_adds - 1))
{
_sheet.Cells[row, col + 11].Value = "Valid Add";
}
else if (update == (_updates - 1))
{
_sheet.Cells[row, col + 11].Value = "Valid Update";
}
else if (autoterm == (_autotermed - 1))
{
_sheet.Cells[row, col + 11].Value = "Valid Autoterm";
}
当我循环浏览电子表格后,我调用.Save()
函数。然而这里没有任何变化发生。更改没有被保存。
//Save changes to spreadsheet.
_package.Save();
FileStream
对象,就像你在代码中所做的那样。谢谢! - NealR