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

                   

  • 相关阅读:
    跨域 反向解析
    人工智能-邮箱验证
    人工智能-Selenium
    人工智能-画图形(扩展)
    人工智能-画图形(2)
    人工智能—爬虫
    人工智能—图形
    在django中进行MySQL入库
    djang 过滤器和装饰器
    NGINX、HAProxy和Traefik负载均衡能力对比(转载)
  • 原文地址:https://www.cnblogs.com/MyBeN/p/2887016.html
Copyright © 2020-2023  润新知