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();
                        }
                    }
                }
                
            }

                   

  • 相关阅读:
    微信小程序基础 | 小程序事件的绑定 | 08
    Python的驻留机制(仅对数字,字母,下划线有效)
    深浅Copy的理解
    python2/3区别
    Python的优缺点、以及解释器种类
    Python涉及的各个领域以及技术应用
    近年主流编程语言的了解
    编程语言(机器语言、汇编语言、高级语言)
    mysql常用SQL语句
    mysql数据库的优缺点
  • 原文地址:https://www.cnblogs.com/MyBeN/p/2887016.html
Copyright © 2011-2022 走看看