我写了一个小程序来从wpf中的excel文件中提取数据。 但我得到这个错误: '窗口'是'System.Windows.Window'和Microsoft.Office.Interop.Excel.Window'之间的歧义参考。
为什么发生? 我的代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Microsoft.Office.Interop.Excel; namespace FileReader { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook xlWb; Microsoft.Office.Interop.Excel.Worksheet xlWsheet; private void excel_Click(object sender, RoutedEventArgs e) { try { xlWb = xlApp.Workbooks.Open("C:\\Config.xlsm", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); xlWsheet = (Worksheet)xlWb.Sheets["Startup"]; Range xlRange = xlWsheet.UsedRange; for (int rownum = 0; rownum <= 31; rownum++) { xlRange = xlWsheet.Cells[rownum + 2, 24]; d32[rownum] = xlRange.Value.ToString().Substring(2); } } catch (Exception e) { MessageBox.Show("File not found: C:\\Config.xlsm","File not found",MessageBoxButton.OK,MessageBoxImage.Warning); } } }
如错误中所述 – Window
类存在于您已使用的两个名称空间中。 所以,你需要使用完全限定的类型名称 。
更换
public partial class MainWindow : Window
同
public partial class MainWindow : System.Windows.Window
或者,您可以使用简写语法来为名称空间声明别名,并使用它来代替完全限定的名称空间。
using WPFWindow = System.Windows; public partial class MainWindow : WPFWindow.Window
问题:您已经导入了以下两个具有Window
类的名称空间
using System.Windows; using Microsoft.Office.Interop.Excel;
因此在使用以下语句时存在歧义问题
public partial class MainWindow : Window
解决方案:您可以使用类Window
fully qualified name
来避免歧义问题。
尝试这个:
public partial class MainWindow : System.Windows.Window