使用Excel InterOp创建后无法立即读取CSV文件

时间:2016-09-25 22:20:17

标签: c# excel csv

将Excel工作表转换为CSV后,我无法立即读取CSV文件。我收到错误:"进程无法访问该文件..因为它正被另一个进程使用。"

我的代码是:

            csvFilePath = AppSettings.exportFileFolderPath + @"\Temp002.csv";
            ws.SaveAs(csvFilePath, Excel.XlFileFormat.xlCSV, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                        Missing.Value, Missing.Value);
            allLines = File.ReadAllLines(csvFilePath);

此时,如果我放置一个断点并尝试在Windows资源管理器中重命名该文件,我也会在资源管理器中遇到相同的错误。但是在调试器抛出异常并且程序结束后,我立即能够在资源管理器中重命名该文件。

问题和解决方案是什么?

编辑1: 这似乎有效:

            string csvFilePath1 = AppSettings.exportFileFolderPath + @"\Temp001.001";
            ws.SaveAs(csvFilePath1, Excel.XlFileFormat.xlCSV, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                        Missing.Value, Missing.Value);

            ws = wSheets.get_Item("Dummy") as Excel.Worksheet;
            string csvFilePath2 = AppSettings.exportFileFolderPath + @"\Temp001.002";
            ws.SaveAs(csvFilePath2, Excel.XlFileFormat.xlCSV, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                        Missing.Value, Missing.Value);

            string[] allLines = File.ReadAllLines(csvFilePath1);

但只是想知道是否还有更好的方式?

0 个答案:

没有答案