如何在不显示 Excel window 的情况下按文件名打开工作簿?
How to open workbook by filename without displaying Excel window?
我通过 fileName
使用以下代码得到 currentWrkBook
:
using Excel = Microsoft.Office.Interop.Excel;
...
Excel.Workbook currentWrkBook = Excel.Application.Workbooks.Open(fileName);
...
结果正常(当运行上述语句时,文件名[D:/DataProject/Resources.xlsm]
已打开):
现在,我想在不打开文件的情况下通过文件名获取 currentWrkBook。
这可能吗?关于这些的任何提示都会有很大帮助。提前致谢。
尝试从新的应用程序对象打开您的文件:
var excel = new Excel.Application();
var workbook = excel.Workbooks.Open(filename);
您可能已经有 excel 个实例 运行,然后新工作簿也可见。
编辑:如果您需要获取已打开工作簿的参考,您可以获取它by name:
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 将以可见方式打开文件。
我通过 fileName
使用以下代码得到 currentWrkBook
:
using Excel = Microsoft.Office.Interop.Excel;
...
Excel.Workbook currentWrkBook = Excel.Application.Workbooks.Open(fileName);
...
结果正常(当运行上述语句时,文件名[D:/DataProject/Resources.xlsm]
已打开):
现在,我想在不打开文件的情况下通过文件名获取 currentWrkBook。
这可能吗?关于这些的任何提示都会有很大帮助。提前致谢。
尝试从新的应用程序对象打开您的文件:
var excel = new Excel.Application();
var workbook = excel.Workbooks.Open(filename);
您可能已经有 excel 个实例 运行,然后新工作簿也可见。
编辑:如果您需要获取已打开工作簿的参考,您可以获取它by name:
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 将以可见方式打开文件。