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

  • 相关阅读:
    找到数组中消失的所有数字-算法刷题总结
    爬楼梯-算法练习笔记
    最长公共前缀-刷题总结
    每日温度-算法详细分析
    买卖股票的最佳时机-算法详细分析
    回文数-算法详细分析
    合并两个有序链表-算法详细法分析
    最短无序连续子数组 | 算法详细分析
    整数反转-算法详细分析
    python设计模式之责任链模式
  • 原文地址:https://www.cnblogs.com/BARNEYROSS/p/5008374.html
Copyright © 2011-2022 走看看