zoukankan      html  css  js  c++  java
  • C#从datatable或dategridview导出到excel

    1.datatable

       

    DataTable dtqzh= Service.getTableBySql("select * from  table where");
     if (dtqzh != null && dtqzh.Rows.Count > 0)
    {
          this.outLoadExcel(dtqzh);                            
    }
    
     private void outLoadExcel(DataTable dtqzh)
            {
                if (dtqzh.Rows.Count <= 0)
                {
                    MessageBox.Show("没有可供导出的数据");
                    return;
                }
    
                //创建Excel对象
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                excel.Application.Workbooks.Add(true);
                excel.Visible = true;
                //生成字段,即添加表头
                for (int i = 0; i < dtqzh.Columns.Count; i++)
                {
                    excel.Cells[1, i + 1] = dtqzh.Columns[i].ColumnName;
                }
                //填充内容
                for (int i = 0; i < dtqzh.Rows.Count; i++)
                {
                    for (int j = 0; j < dtqzh.Columns.Count; j++)
                    {
                        if (dtqzh.Rows[i][j] == null)
                        {
                            excel.Cells[i + 2, j + 1] = "";
                        }
                        else
                        {
                            excel.Cells[i + 2, j + 1] = dtqzh.Rows[i][j].ToString();
                        }
                    }
                }
    
            }

    2.datagridview

    private void outLoadExcel(DataGridView dgv)
            {
                if (dgv.Rows.Count <= 0)
                {
                    MessageBox.Show("没有可供导出的数据");
                    return;
                }
    
                //创建Excel对象
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                excel.Application.Workbooks.Add(true);
                excel.Visible = true;
                //生成字段,即添加表头
                for (int i = 0; i < dgv.Columns.Count; i++)
                {
                    excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText;
                }
                //填充内容
                for (int i = 0; i < dgv.Rows.Count; i++)
                {
                    for (int j = 0; j < dgv.Columns.Count; j++)
                    {
                        if (dgv[j, i].Value==null)
                        {
                            excel.Cells[i + 2, j + 1] = "";
                        }
                        else 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();
                        }
                    }
                }
                
            }

                   

  • 相关阅读:
    python学习2(转载)
    python学习1
    第三方授权登录
    新浪微博开发者平台应用申请及配置说明
    新浪微博登录第三方网站实现原理是什么?
    Redis中PipeLine使用
    发送短信验证码的功能开发
    Python celery原理及运行流程
    设置django缓存+验证码图片接口
    编写注册接口
  • 原文地址:https://www.cnblogs.com/MyBeN/p/2887016.html
Copyright © 2011-2022 走看看