[英]How to read open excel file at C#
我想用C#阅读已经打开的Excel文件。 我正在使用此方法,但是在Microsoft excel中打开文件时无法读取excel文件。
FileStream stream = File.Open("myfile.xlsx", FileMode.Open, FileAccess.Read);
它给出IOException: The process cannot access the file 'myfile.xlsx' because it is being used by another process.
我希望你明白我的意思。 我想保持excel文件打开,而在Microsoft excel中打开文件时,我想从C#中读取它。 我正在使用C#Net Framework 4.0
您需要使用FileShare.ReadWrite打开它:
FileStream stream = File.Open("myfile.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
看到这个答案 。
我认为您可以在excel打开文件的同时复制该文件,因此您可以复制该文件,然后将其打开。 完成复制后,只需确保自己进行清理即可。
您可以使用Interop库来使用已经打开的Excel实例。
oExcel == (Excel.Application) System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application")
您可以尝试使用第四个参数FileShare打开File.Open。
FileStream stream = File.Open("myfile.xlsx", FileMode.Open, FileAccess.Read, FileShare.Read);
您可能还需要指定写访问权限。
要同时多次打开同一个文件,需要以共享模式打开它。
希望这可以帮助其他人。
为了确保正确打开和关闭文件,请查看使用c#using语句
using (FileStream stream = File.Open("myfile.xlsx", FileMode.Open, FileAccess.Read))
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.