通过C#处理Excel文件的大多数问题似乎都是以完全自动化的方式解决。我的问题略有不同。
代码的工作方式。
启动一个批处理,该批处理在给定位置创建.txt文件,由sql查询的结果填充。 (完成并且工作)
在Excel中打开文件(我使用.txt的原因是.csv通过删除前导零等来扰乱我的数字)并使其对用户可见。代码停止工作,其余部分留给用户。
用户自行更改文件并手动保存并退出Excel。
我遇到的问题是,该过程不希望单独保留文件'。它打开正确,我编辑了值,然后我保存它,当我尝试关闭它时,它询问我是否要再次保存更改。我点击是,然后立即弹出另一个弹出窗口,询问相同的问题。
我不知道如何发布'该文件使其控件完全取决于用户,而无需实际关闭Excel。
这是我使用的一些代码:
{
(...)
RunBatch("Manual_adjustment");
string fileName = "Manual_Adjustment.txt";
Excel.Application excel = new Excel.Application();
object misValue = System.Reflection.Missing.Value;
Excel.Workbook excelWorkbook;
excel.Visible = true;
excelWorkbook = excel.Workbooks.Open(ConstantValues.FolderPathInput + + @"\" + fileName);
releaseObject(excelWorkbook);
releaseObject(excel);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
如何让用户保存更改而不让他从操作系统级别手动打开文件?