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