如何通过文件名打开工作簿而不显示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将显式打开该文件。