以下是我目前使用的一些代码:
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.Workbooks.Open(path);
// Make the object visible.
excelApp.Visible = true;
我知道工作簿会打开。
我正在使用Visual Studio 2013。
答案 0 :(得分:4)
Workbooks.Open()
函数返回您需要存储的工作簿对象,它包含更多带有工作簿数据的对象。您应该能够从智能感知中获取所有这些信息,或者您可以在Microsoft.Office.Interop.Excel namespace on MSDN上找到相关信息。
下面是一个示例脚本,它将打开一个消息框,其中包含路径中工作簿中每个命名范围的名称。
using Microsoft.Office.Interop.Excel;
Application excelApp = new Application();
Workbook myWorkbook = excelApp.Workbooks.Open(path);
Names wbNames = myWorkbook.Names;
foreach (Name n in wbNames)
{
System.Windows.Forms.MessageBox.Show(n.Name);
}
答案 1 :(得分:0)
您还可以获取名称标签的位置(称为值):
Microsoft.Office.Interop.Excel.Names Names = wb.Names;
foreach(Microsoft.Office.Interop.Excel.Name item in Names)
{
if(item.Name.Contains("cellexportcondition"))
{
MessageBox.Show(item.Name.ToString() + " = " + item.Value.ToString());
}
}
或者,您也可以获取单元格值(如果要在workbook.beforeclose事件中执行此操作,则需要重新创建应用程序和工作表)
Microsoft.Office.Interop.Excel.Application tempexcellApp= wb.Application;
Microsoft.Office.Interop.Excel.Worksheet tws = (Microsoft.Office.Interop.Excel.Worksheet)tempexcellApp.Worksheets[1];
Microsoft.Office.Interop.Excel.Names Names = wb.Names;
foreach(Microsoft.Office.Interop.Excel.Name item in Names)
{
if(item.Name.Contains("cellexportcondition"))
{
string a = "";
if(tws.Range[item.Name].Value2 != null)
{
a = item.Name + " " + tws.Range[item.Name].Value2.ToString();
}else a = item.Name + " empty cell ";
MessageBox.Show(a);
}
}