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