zoukankan      html  css  js  c++  java
  • 关于List<>(实体类)泛型集合转DataTable_ONE

       // 泛型集合转DataTable,T为Linq实体类

       public delegate void GetDataTableRow<T>(T t,System.Data.DataTable d);
            public static void ExcelOut2<T>(DataGrid gt, GetDataTableRow<T> GetDataTableRow)
            {    
                
                ItemCollection list= gt.Items;  //获取grid表格的源集合
                if (list.Count <= 0) { MessageBox.Show("没有需要导出的数据"); return; }//判断集合是否为空

                System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog();
                saveFileDialog.Filter = "Excel files (*.xls)|*.xls";
                saveFileDialog.FilterIndex = 0;
                saveFileDialog.RestoreDirectory = true;
                //saveFileDialog.CreatePrompt = true;
                saveFileDialog.Title = "导出Excel文件到";
                //打开选择/创建文件对话框后取消操作
                if (saveFileDialog.ShowDialog()== System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }
                System.Data.DataTable dt = new System.Data.DataTable();//创建待传参数DataTable

                for (int i = 0; i < gt.Columns.Count; i++)//待传参数DataTable新建列
                {
                    dt.Columns.Add(gt.Columns[i].Header.ToString(), Type.GetType("System.String"));
                }

                for (int i = 0; i < list.Count; i++)//待传参数DataTable填充内容
                {
                         T t3 = (T)list[i];
                         GetDataTableRow(t3, dt);
                }
                WzdhApp.clss_excel.ExcelIO e = new WzdhApp.clss_excel.ExcelIO();//实际调用datatable转excel工具类
                bool a = e.DataTableToExecl(dt, saveFileDialog.FileName);
                if (a == false)
                {
                    MessageBox.Show("数据导出失败");
                }
                else {
                    MessageBox.Show("数据导出成功");
                }
            }
         
            }

        //在程序中使用方法1

           GridToExcel.ExcelOut2<KcxxQdxx>(grid_user,(w,d)=> d.Rows.Add(new object[]{w.Wz_bh,w.Wz_Name,w.Wz_ggxh,
                      w.Fphm,w.Kc_sl,w.Kc_ksysl,w.Wz_jldw,w.Kc_dj,w.Kc_jfsl,
                      w.Kc_je,w.Rksj,w.Wz_sccj,w.Scrq,w.Wz_bzqx,w.Beizhu }));

        //在程序中使用方法2
                GridToExcel.ExcelOut2<WZ_DHMX>(grid_user, delegate(WZ_DHMX w,DataTable d) {
                DataRow dr = d.NewRow();
                dr[0] = w.Wz_Name;
                dr[1] = w.KH_DJSXJF;
                dr[2] = w.DH_SL;
                dr[3] = w.KH_XM;
                dr[4] = w.DH_KH;
                dr[5] = w.JM_SFZ;
                dr[6] = w.KH_XB;
                dr[7] = w.JM_LXDH;
                dr[8] = w.Create_Date;
                dr[9] = w.Rec_clk_name;
                d.Rows.Add(dr);
                });

  • 相关阅读:
    vscode里的NPM脚本
    Vue之生命周期activated与created使用
    分享10个超棒的设计素材网站
    使用node搭建静态资源服务器
    vue 动态组件的传值
    一文带你入门正则表达式
    一文告诉你git如何使用
    一文告诉你三种常见跨域解决方案
    一文告诉你原型与原型链是什么?
    一文告诉你 Event Loop 是什么?
  • 原文地址:https://www.cnblogs.com/BARNEYROSS/p/5008374.html
Copyright © 2011-2022 走看看