VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 666|回复: 3

如何实现把DataGrid中的数据导到Excel?

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-20 18:30:02 | 显示全部楼层 |阅读模式
如何实现把DataGrid中的数据导到Excel?我上网也找了些资料就是不可以。为什么啊?能不能帮帮忙啊?
回复

使用道具 举报

0

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-6-26 18:30:01 | 显示全部楼层
StringWriter sw=new StringWriter();
sw.WriteLine("列名1,列名2,列名3");
                                                
foreach(DataRow dr in ds.Tables[0].Select("flag=0") )
{   
sw.WriteLine(dr[0]+","+dr[1]+","+dr[2]);
}                               
             sw.Close();
Response.AddHeader("Content-Disposition", "attachment; filename=eBay.csv");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding=System.Text.Encoding.GetEncoding("UTF-8");
Response.Write(sw);
Response.End();
这是到出到csv格式文本,excel基本上和这差不多,hope对你有点帮助!
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-6-29 16:30:01 | 显示全部楼层
private void btnMIME_Click(object sender, System.EventArgs e)
                {
                        BindData();

                        Response.ContentType = "application/vnd.ms-excel";
                        Response.AddHeader("Content-Disposition", "inline;filename="
                                +   HttpUtility.UrlEncode("下载文件.xls",Encoding.UTF8   )   );   
       

                        //如果输出为Word,修改为以下代码
                        //Response.ContentType = "application/ms-word"
                        //Response.AddHeader("Content-Disposition", "inline;filename=test.doc")
                        StringBuilder sb=new StringBuilder();
                        System.IO.StringWriter sw = new System.IO.StringWriter(sb);
                        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw);
                        sb.Append("<html><body>");
                        dgShow.RenderControl(hw);
                        sb.Append("</body></html>");
                        Response.Write(sb.ToString());
                        Response.End();
                }

                private void btnCom_Click(object sender, System.EventArgs e)
                {
                        ExportToExcel(BindData(),Server.MapPath("ComExcel.xls"));
               
                }
                //从DataSet到出到Excel
                #region 从DataSet到出到Excel
                /// 导出指定的Excel文件
                public void ExportToExcel(DataSet ds,string strExcelFileName)
                {
                        if (ds.Tables.Count==0 || strExcelFileName=="") return;
                        doExport(ds,strExcelFileName);
   

                }
                /// 执行导出
                private void doExport(DataSet ds,string strExcelFileName)
                {
            
                        Excel.Application excel= new Excel.Application();
                        int rowIndex=1;
                        int colIndex=0;
                        excel.Application.Workbooks.Add(true);
                        System.Data.DataTable table=ds.Tables[0] ;
                        foreach(DataColumn col in table.Columns)
                        {
                                colIndex++;   
                                excel.Cells[1,colIndex]=col.ColumnName;               
                        }

                        foreach(DataRow row in table.Rows)
                        {
                                rowIndex++;
                                colIndex=0;
                                foreach(DataColumn col in table.Columns)
                                {
                                        colIndex++;
                                        excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
                                }
                        }
                        excel.Visible=false;   
                        excel.ActiveWorkbook.SaveAs(strExcelFileName+".XLS",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null,null);
                        excel.Quit();
                        excel=null;
                        GC.Collect();//垃圾回收
                }
        #endregion
        }
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-6-29 16:45:01 | 显示全部楼层
测试过,一定行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表