如何通过文件名打开工作簿而不显示Excel窗口?

我通过fileName获得currentWrkBook ,代码如下:

 using Excel = Microsoft.Office.Interop.Excel; ... Excel.Workbook currentWrkBook = Excel.Application.Workbooks.Open(fileName); ... 

结果得到OK(运行到上面的语句时,fileName [D:/DataProject/Resources.xlsm]打开):

在这里输入图像说明

现在,我想通过fileName获得currentWrkBook而不打开文件。

这是可能的? 任何提示,这将是很大的帮助。 提前致谢。

尝试从新的应用程序对象打开你的文件:

 var excel = new Excel.Application(); var workbook = excel.Workbooks.Open(filename); 

有可能,你有excel实例已经运行,那么新的工作簿也变得可见。

编辑:如果你需要得到一个已经打开的工作簿的参考,你可以得到它的名字 :

 Excel.Workbook currentWrkBook = Excel.Application.Workbooks[fileName]; 

我似乎可以通过以只读模式打开文件来做到这一点。 对我来说,这足够好,因为我只需要读取数据。

 var oXL = new Microsoft.Office.Interop.Excel.Application(); oXL.Visible = false; Workbook Wbook = oXL.Workbooks.Open(txtFileName.Text, ReadOnly: true, Password: "password"); var sheet = Wbook.Worksheets[1]; foreach (Range row in sheet.UsedRange.Rows) { var firstName = sheet.Cells[row.Row, 1].Value2, var lastName = sheet.Cells[row.Row, 2].Value2 } 

如果将ReadOnly参数切换为false,则Excel将显式打开该文件。