C# 如何使用openFileDialog打开excel文件

C# 如何使用openFileDialog打开excel文件,c#,C#,我很难弄明白这一点。我想在按钮点击事件中打开一个filedialog窗口,用户将在其中选择一个excel文件,该文件将在excel中打开 我已经创建了文件盒,我可以用excel打开一个新文件,但我不知道如何将两者结合起来 我想用的是 using Excel = Microsoft.Office.Interop.Excel; using System.Reflection; private void button1_Click(object sender, EventArgs e) {

我很难弄明白这一点。我想在按钮点击事件中打开一个
filedialog
窗口,用户将在其中选择一个excel文件,该文件将在excel中打开

我已经创建了
文件盒
,我可以用excel打开一个新文件,但我不知道如何将两者结合起来

我想用的是

using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection; 

private void button1_Click(object sender, EventArgs e)
{
   {
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
           System.IO.StreamReader sr = new
           System.IO.StreamReader(openFileDialog1.FileName);
           MessageBox.Show(sr.ReadToEnd());
           sr.Close();
        }
   }
}
我打算用这个打开excel

Excel.Application excel = new Excel.Application();
Excel.Workbook wb = excel.Workbooks.Open(filename);

只需将文件名从“打开文件”对话框传递到Excel应用程序

using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection; 

private void button1_Click(object sender, EventArgs e)
{
    {
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            Excel.Application excel = new Excel.Application();
            Excel.Workbook wb = excel.Workbooks.Open(openFileDialog1.FileName);

您应该将excel和wb声明为表单的字段。差不多

partial class MyForm : Form
{
  private Excel.Application _excel;
  private Excel.Workbook _wb;
  // and so on
}
那你应该换一个

System.IO.StreamReader sr = new System.IO.StreamReader(openFileDialog1.FileName);
MessageBox.Show(sr.ReadToEnd());
sr.Close();


为什么?是因为他的
excel
wb
对象不在范围内吗?是的。如果在事件处理程序中声明它们,则它们在离开处理程序后即超出范围。i get“非静态字段、方法或属性'Microsoft.Office.Interop.Excel.Workbooks.Open'需要对象引用(字符串、对象、对象、对象、对象、对象、对象、对象、对象、对象、对象、对象、对象、对象、对象、对象、对象)“我的答案的最后一段代码中有两个严重的打字错误。可能是这导致了错误。现在没有错误。但是在选择文件时什么都没有发生。当我运行此代码时,表单冻结5-10秒,然后什么都没有。
_excel = new Excel.Application();
_wb = _excel.Workbooks.Open(openFileDialog1.FileName);