簡體   English   中英

如何在C#中讀取打開的Excel文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM