private void button1_Click(object sender, EventArgs e)
        {
            int y = 0;
            if (dataGridView1.Rows.Count == 0)
            {
                MessageBox.Show("无数据,不能进行调用。请检查相关数据在重试", "打印");
            }
            //建立Excel对象 
            Excel.Application excel = new Excel.Application();
            excel.Application.Workbooks.Add(true);            //生成字段名称 
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;
                if (y == 0)
                {
                    y = 1;
                    toolStripStatusLabel6.Text = "数据导入中,请等待!";
                }
            }
            //填充数据 
            for (int i = 0; i < dataGridView1.RowCount - 1; i++)
            {
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                {
                    if (dataGridView1[j, i].Value == typeof(string))
                    {
                        excel.Cells[i + 2, j + 1] = "" + dataGridView1[i, j].Value.ToString();
                    }
                    else
                    {
                        excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();
                    }
                }
            }
            toolStripStatusLabel6.Text = "导入数据完成,请查看.";
            if (y == 1)
            {
                excel.Visible = true;
            }        }
这是在网上找的一段C#从数据库sql数据库把数据导到Excel里的代码 用的dataGridView导入的  我没太看明白 .而且把代码粘贴到 我的.cs文件里 告诉我缺少using指令集  我也不知道具体是那个  请高手们多多帮忙 谢谢

解决方案 »

  1.   

     Excel.Application excel = new Excel.Application(); 这个是一个.com组件。。你要引入。。
    建议你用这种,自己觉得这种好。。跟Table一样。。
    string strConnectToExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = '" 
    + pstrFilePath + "';Extended Properties='Excel 8.0;HDR=YES'";

    //创建对象
    OleDbConnection oleConnect = new OleDbConnection(strConnectToExcel);
    //打开对象
    oleConnect.Open();
      

  2.   

    楼主试试添加这个引用:Microsoft.Office.Interop.Excel
    然后在窗体代码页头加上using Microsoft.Office.Interop.Excel;
      

  3.   

    如果Excel是报表格式呢,推荐用Excel.Application
    因为可以充分利用Excel的格式信息,我以前的做法是用xls的文件做好格式,使用Excel命名定位数据,然后程序直接往命名的位置填充数据,可以生成很漂亮的报表,不过速度有点慢。如果Excel仅仅是存数据表,推荐用楼上的做法,把xls文件当数据库即可,连上之后在Jet中用ODBC直接连SQLServer,一个SQL语句就把数据弄过来了,速度很快,就是Excel打开很难看