Excel.Application myExcel=new Excel.Application();
Excel._Workbook myWorkBook =(Excel._Workbook)myExcel.Workbooks.Add(Missing.Value);//新建一个WorkBook;
Excel._Worksheet mySheet = (Excel._Worksheet)myWorkBook.ActiveSheet;
如上这样定义在函数中(比如Button1的点击函数中)可以,但是要是全局性的(放在下面的位置)就不可以了,会提示错误 字段初始值设定项无法引用非静态字段、方法或属性
public partial class Window1 : Window
{
        Excel.Application myExcel=new Excel.Application();
        Excel._Workbook myWorkBook =(Excel._Workbook)myExcel.Workbooks.Add(Missing.Value);//新建一个WorkBook;
        Excel._Worksheet mySheet = (Excel._Worksheet)myWorkBook.ActiveSheet;
        //Excel.Range myRang;
        string Excel_str = string.Empty;//写入Excel文件数据        public Window1()
        {
            InitializeComponent();
        }
        .......//下面就是一些函数和控件按钮的实现函数,比如Button1的点击函数
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            
            try
            {   
              ..........
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        ..........//其他按钮函数
}
问题是我要用这个全局的Excel对象去将数据写入,而且是WPF的的异步中用到的,就是在按钮的Dispatcher.BeginInvoke中用到,所以只能全局定义了,大家看看有什么办法能定义这个全局的Excel对象。
我根据错误在定义的前面加static就是Excel.Application myExcel=new Excel.Application();
Excel._Workbook myWorkBook =(Excel._Workbook)myExcel.Workbooks.Add(Missing.Value);这两句前面加static使其成为静态,但是第一次运行会正确存贮数据到Excel,第二次就会出错,我想可能是因为我那个对象已经存在的缘故,但是 如果在程序的后面将其清理掉,第二次运行会提示没有RPC对象