我正在编写一个C#应用程序,我使用编写器登录.CSV文件。
我可以附加到该文件,但如果它被另一个程序(excel)打开则不能
有没有办法可以在excel的笔下附加到文件中。所以excel只是弹出一个msb框说文件已更新。
希望您能提供帮助,谢谢和最诚挚的问候 SørenP。
答案 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中关闭),然后写入它,但是当它打开并因此被锁定时你无法写入它。