C#附加到打开文件

时间:2015-11-02 09:46:55

标签: c# file

我正在编写一个C#应用程序,我使用编写器登录.CSV文件。

我可以附加到该文件,但如果它被另一个程序(excel)打开则不能

有没有办法可以在excel的笔下附加到文件中。所以excel只是弹出一个msb框说文件已更新。

希望您能提供帮助,谢谢和最诚挚的问候 SørenP。

3 个答案:

答案 0 :(得分:2)

如果您知道该文件已被Excel锁定,您可以尝试以下操作:

// Get the excel application instance.
Microsoft.Office.Interop.Excel.Application excel = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");

// Get the workbook you need to modify (where "WorkbookName" is the name of the Workbook).
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks["WorkbookName"];

// Close the workbook without saving - you can now modify the file.
workbook.Close(false, false, false);

您可能需要根据您的确切需要修改此模式 - 即您可能希望Excel在关闭之前保存对文件的任何更改。

答案 1 :(得分:0)

不,因为文件被锁定,你不能。您可以终止阻止过程,但在这种情况下,这不是您想要的。

答案 2 :(得分:0)

问题是excel和其他办公产品在打开时锁定文件。像记事本++这样的其他工具通常更好一些,不会锁定文件。

因此很遗憾没有办法在解锁之前修改文件。你只能等待文件再次解锁(也就是在excel中关闭),然后写入它,但是当它打开并因此被锁定时你无法写入它。