3

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

我已经创建了filebox并且我能够让 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);
4

2 回答 2

4

只需将打开文件对话框中的文件名传递给 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);
于 2013-05-28T04:51:03.480 回答
4

您应该将 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 = new Excel.Application();
_wb = _excel.Workbooks.Open(openFileDialog1.FileName);
于 2013-05-28T04:56:47.347 回答