动态导出Excel(列从xml中取)

        /// <summary>
        /// 导出
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOutExcel_Click(object sender, EventArgs e)
        {
            //ExportToExcel ete = new ExportToExcel();
            //ete.DataGridViewToExcel(this.dgvList);

            if (RecordCount.Equals(0))
            {
                return;
            }
            int totalPage = 0;
            int totalRecord = 0;
            Lamp.WinControl.tcLoadFlash loadFlash = new tcLoadFlash();
            loadFlash.Show();
            Application.DoEvents();
            IList<B_LampPost> postList = PB_LampPost.GetLampPostListByPage(Program.dbname, sqlWhere, this.tcPager1.PageSize, 1, out totalPage, out totalRecord);
            List<B_LampPost> allList = new List<B_LampPost>();
            allList.AddRange(postList);
            for (int i = 2; i <= totalPage; i++)
            {
                postList = PB_LampPost.GetLampPostListByPage(Program.dbname, sqlWhere, this.tcPager1.PageSize, i, out totalPage, out totalRecord);
                allList.AddRange(postList);
            }
            loadFlash.Dispose();

            if (postList.Count > 0)
            {
                DataTable dt = new DataTable();
                #region 生成DataTable

                XmlDocument doc = new XmlDocument();
                string xmlFile = System.Environment.CurrentDirectory + "//GridViewXml//frmLampPost.xml";
                doc.Load(xmlFile);
                XmlNode node = doc.SelectNodes("//Fields")[0];

                foreach (XmlNode n in node.ChildNodes)
                {
                    string dataField = n.Attributes["DataField"].InnerText;
                    string name = n.InnerText;
                    string strVisible = n.Attributes["Visible"].InnerText;
                    if (strVisible == "1")
                    {
                        dt.Columns.Add(new DataColumn(name, typeof(string)));
                    }

                }

 

 

                #endregion
                //dt.Columns.Add(new DataColumn("序号", typeof(string)));
                //dt.Columns.Add(new DataColumn("灯杆ID", typeof(string)));
                //dt.Columns.Add(new DataColumn("灯杆编号", typeof(string)));
                //dt.Columns.Add(new DataColumn("灯杆类型", typeof(string)));
                //dt.Columns.Add(new DataColumn("所在道路", typeof(string)));
                //dt.Columns.Add(new DataColumn("路侧", typeof(string)));
                //dt.Columns.Add(new DataColumn("所属变压器", typeof(string)));
                //dt.Columns.Add(new DataColumn("变压器编号", typeof(string)));
                //dt.Columns.Add(new DataColumn("所属回路", typeof(string)));
                //dt.Columns.Add(new DataColumn("电源类型", typeof(string)));
                //dt.Columns.Add(new DataColumn("灯源个数", typeof(string)));
                //dt.Columns.Add(new DataColumn("责任人", typeof(string)));
                //dt.Columns.Add(new DataColumn("国标编号", typeof(string)));
                //dt.Columns.Add(new DataColumn("高度", typeof(string)));
                //dt.Columns.Add(new DataColumn("价格", typeof(string)));
                //dt.Columns.Add(new DataColumn("安装日期", typeof(string)));
                //dt.Columns.Add(new DataColumn("生产厂商", typeof(string)));
                //dt.Columns.Add(new DataColumn("描述", typeof(string)));

                DataRow row = null;
                int rowNumber = allList.Count;
                if (rowNumber > 0)
                {
                    System.Reflection.PropertyInfo[] propertyInfo = allList[0].GetType().GetProperties();
                    for (int j = 0; j < rowNumber; j++)
                    {
                        row = dt.NewRow();

                        foreach (XmlNode n in node.ChildNodes)
                        {
                            string dataField = n.Attributes["DataField"].InnerText;
                            string name = n.InnerText;
                            string strVisible = n.Attributes["Visible"].InnerText;
                            object objAttribute = allList[j].GetType().InvokeMember(dataField,
                                    BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty,
                                    null,
                                    allList[j],
                                    null,
                                    null,
                                    null,
                                    null);
                            string strAttribute = "";
                            if (objAttribute!=null)
                            {
                                strAttribute = objAttribute.ToString();
                            }
                            if (strVisible == "1"&&strAttribute!="")
                            {
                                row[name] = strAttribute;
                            }

                        }
                        //row["序号"] = allList[j].LampPostNumber;
                        //row["灯杆ID"] = allList[j].LampPostID;
                        //row["灯杆编号"] = allList[j].LamppostCode;
                        //row["灯杆类型"] = allList[j].LampPostTypeName;
                        //row["所在道路"] = allList[j].StreetName;
                        //row["路侧"] = allList[j].StreetSideTypeName;
                        //row["所属变压器"] = allList[j].TransformerName;
                        //row["变压器编号"] = allList[j].TransCode;
                        //row["所属回路"] = allList[j].RelayID;
                        //row["电源类型"] = allList[j].PowerType;
                        //row["灯源个数"] = allList[j].LampCount;
                        //row["责任人"] = allList[j].Persons;
                        //row["国标编号"] = allList[j].GBCode;
                        //row["高度"] = allList[j].Height;
                        //row["价格"] = allList[j].Price;
                        //row["安装日期"] = allList[j].AddDate;
                        //row["生产厂商"] = allList[j].ManufacturerName;
                        //row["描述"] = allList[j].LampPostIntro;

                        dt.Rows.Add(row);
                    }

                }
                dt.AcceptChanges();
                Dictionary<string, System.Data.DataTable> TableList = new Dictionary<string, System.Data.DataTable>();
                TableList.Add("灯杆信息", dt);
                Inc.ExportListToExcel(TableList);
                //Inc.ExportToExcel(dt);               

            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值