c# 怎么把dataGridView的数据 用Excel导出! 详细点啊 25

小弟初学~要引用什么也要说哦!... 小弟初学~ 要引用什么也要说哦! 展开
 我来答
shihoumacili
高粉答主

2016-01-31 · 每个回答都超有意思的
知道大有可为答主
回答量:1.1万
采纳率:87%
帮助的人:491万
展开全部

具体实例如下:

1.先去导入dll库:Microsoft.Office.Interop.Excel.dl

2.然后再去写代码:

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

using Microsoft.Office.Interop;  

using Microsoft.Office.Interop.Excel;  

using System.Windows.Forms;  

using Excel = Microsoft.Office.Interop.Excel;   

  

public class ExprotToExcel  

{   

    public void  DataToExcel(DataGridView dgv,ToolStripProgressBar tempProgressBar,ToolStripStatusLabel toolstrip)  

    {  

        if (dgv.Rows.Count == 0)  

        {  

            MessageBox.Show("无数据"); return;  

        }  

        MessageBox.Show("开始生成要导出的数据", "导出提示", MessageBoxButtons.OK, MessageBoxIcon.Information);  

        Excel.Application excel = new Excel.Application();  

        excel.Application.Workbooks.Add(true);  

        excel.Visible = false;     

        for (int i = 0; i < dgv.ColumnCount; i++)  

            excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText;  

        tempProgressBar.Visible = true;  

        tempProgressBar.Minimum = 1;  

        tempProgressBar.Maximum = dgv.RowCount;  

        tempProgressBar.Step = 1;  

        toolstrip.Visible = true;  

        for (int i = 0; i < dgv.RowCount; i++)  

        {  

            for (int j = 0; j < dgv.ColumnCount; j++)  

            {  

                if (dgv[j, i].ValueType == typeof(string))  

                {  

                    excel.Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();  

                }  

                else  

                {  

                    excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();  

                }  

            }  

            toolstrip.Text = "|| 状态:正在生成第 "+i+"/"+dgv.RowCount+" 个";  

            tempProgressBar.Value = i + 1;  

        }  

        toolstrip.Text = "|| 状态:生成成功!";  

        MessageBox.Show("生成成功,请保存。","生成提示",MessageBoxButtons.OK,MessageBoxIcon.Information);  

        excel.Visible = true;  

    }  

}  

3.打开后,效果如下:

HHP和尚
2008-07-29 · TA获得超过119个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:0
展开全部
OpenFileDialog openfile = new OpenFileDialog();
openfile.DefaultExt = "xls";
openfile.Filter = "Excel文件|*.xls";
if (openfile.ShowDialog() == DialogResult.OK)
{
string s;

s = openfile.FileName.ToString();
string strCon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + s + ";Extended properties=Excel 8.0";
OleDbConnection myconn = new OleDbConnection(strCon);
string strcom = "select * from [Sheet1$]";
myconn.Open();
OleDbCommand comm = new OleDbCommand(strcom, myconn);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = comm;
myconn.Close();
DataSet ds1 = new DataSet();
da.Fill(ds1, "[Sheet1$]");
dataGridView1.DataSource = ds1.Tables[0];
}
}
catch (Exception e1) { MessageBox.Show(e1.Message); }
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wings_lee
2008-07-28 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:124万
展开全部
为方便使用,写成方法如下:
public void DGToExcel(System.Web.UI.Control ctl)
{
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset ="UTF-8";
HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType ="application/ms-excel";
ctl.Page.EnableViewState =false;
System.IO.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}

用法:DGToExcel(datagrid1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bf785f8
2008-07-29 · 超过26用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:85.6万
展开全部
MSDN文档
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;306023#top
多种方法介绍以及代码示例,看看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式