currentWrkBook
fileName
,代码如下:
using Excel = Microsoft.Office.Interop.Excel;
...
Excel.Workbook currentWrkBook = Excel.Application.Workbooks.Open(fileName);
...
结果变为OK(运行到上面的语句时,fileName [D:/DataProject/Resources.xlsm]
已打开):
现在,我想通过fileName获取currentWrkBook而不打开文件。
这可能吗?任何有关这些的提示都将是很有帮助的。提前谢谢。
答案 0 :(得分:1)
尝试从新的Application对象中打开文件:
var excel = new Excel.Application();
var workbook = excel.Workbooks.Open(filename);
有可能,你已经运行了excel实例,那么新的工作簿也会变得可见。
编辑:如果您需要获取已打开的工作簿的参考,您可以获取它by name:
Excel.Workbook currentWrkBook = Excel.Application.Workbooks[fileName];
答案 1 :(得分:0)
我似乎可以通过以只读模式打开文件来完成此操作。对我来说,这很好,因为我只需要阅读数据。
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将显示该文件。