DataTable中的数据(列/行)排序后放入一个新的DataTable自定义排序 就是将DataTable的数据以列为基准 进行移动我需要完成的功能就是定义一个新的datatable然后把列的位置颠倒,最后用Excel导出 (求详细代码高分悬赏)这个图片是下断点看到的数据真实数据; protected void ButtonHTTP_Click(object sender, EventArgs e)
{
string myName1Value;
myName1Value = Request.Cookies["TWDatamyCookie"].Value;//Cookies存储查询所需条件 CTWebPlatform.localhost.CTWebInterface mWebInt = new CTWebInterface();//引入接口
DataTable BindData = null;
BindData = mWebInt.TWDataSelectByOrgId(Convert.ToInt32(myName1Value));//接口实现查询操作
checks(BindData); //复选框条件 删除datatable中不需要的数据-并汉化列头
GridView view = new GridView();
view.DataSource = BindData.DefaultView;
view.DataBind();
ExportToExcel(view);//导出数据Excel
}数据如下TakeWellName DYNID OrgName Column1 SampleTime dStroke Column2 Column3 RecvTime dRunStatus dFreq date MeasureStationName
X6-12-P929 3212030 三矿(聚杏北七队) 启动 2012-6-18 15:02 5 3 游动凡尔漏失(轻度);气体影响(轻度); 2012-6-18 15:02 1 3 2012/6/18 15;02;55 计量间5
X6-22-P922 3212104 三矿(聚杏北七队) 启动 2012-6-18 15:02 5 2.72 游动凡尔漏失(轻度); 2012-6-18 15:02 1 2.72 2012/6/18 15;02;55 计量间3
X6-10-P928 3212106 三矿(聚杏北七队) 启动 2012-6-18 15:02 5 2.98 游动凡尔漏失(轻度); 2012-6-18 15:02 1 2.98 2012/6/18 15;02;29 计量间2
X6-30-P924 3212128 三矿(聚杏北七队) 启动 2012-6-18 15:02 6 2.92 正常 2012-6-18 15:02 1 2.92 2012/6/18 15;02;25 计量间3求各位大神 帮忙解决 急死了都
{
string myName1Value;
myName1Value = Request.Cookies["TWDatamyCookie"].Value;//Cookies存储查询所需条件 CTWebPlatform.localhost.CTWebInterface mWebInt = new CTWebInterface();//引入接口
DataTable BindData = null;
BindData = mWebInt.TWDataSelectByOrgId(Convert.ToInt32(myName1Value));//接口实现查询操作
checks(BindData); //复选框条件 删除datatable中不需要的数据-并汉化列头
GridView view = new GridView();
view.DataSource = BindData.DefaultView;
view.DataBind();
ExportToExcel(view);//导出数据Excel
}数据如下TakeWellName DYNID OrgName Column1 SampleTime dStroke Column2 Column3 RecvTime dRunStatus dFreq date MeasureStationName
X6-12-P929 3212030 三矿(聚杏北七队) 启动 2012-6-18 15:02 5 3 游动凡尔漏失(轻度);气体影响(轻度); 2012-6-18 15:02 1 3 2012/6/18 15;02;55 计量间5
X6-22-P922 3212104 三矿(聚杏北七队) 启动 2012-6-18 15:02 5 2.72 游动凡尔漏失(轻度); 2012-6-18 15:02 1 2.72 2012/6/18 15;02;55 计量间3
X6-10-P928 3212106 三矿(聚杏北七队) 启动 2012-6-18 15:02 5 2.98 游动凡尔漏失(轻度); 2012-6-18 15:02 1 2.98 2012/6/18 15;02;29 计量间2
X6-30-P924 3212128 三矿(聚杏北七队) 启动 2012-6-18 15:02 6 2.92 正常 2012-6-18 15:02 1 2.92 2012/6/18 15;02;25 计量间3求各位大神 帮忙解决 急死了都
未排序导出的数据格式
排序后需要得到的效果
完整项目代码 protected void ButtonHTTP_Click(object sender, EventArgs e)
{
string myName1Value;
myName1Value = Request.Cookies["TWDatamyCookie"].Value;//Cookies存储查询所需条件 CTWebPlatform.localhost.CTWebInterface mWebInt = new CTWebInterface();//引入接口
DataTable BindData = null;
BindData = mWebInt.TWDataSelectByOrgId(Convert.ToInt32(myName1Value));//接口实现查询操作
// checks(BindData); //复选框条件 删除datatable中不需要的数据-并汉化列头
GridView view = new GridView();
view.DataSource = BindData.DefaultView;
view.DataBind();
ExportToExcel(view);//导出数据Excel
}
/// <summary>
/// 列数据导出选项□√
/// </summary>
/// <param name="BindData"></param>
private void checks(DataTable BindData)
{
if (CheckTakeWellName.Checked == false)
{
BindData.Columns.Remove(BindData.Columns["TakeWellName"]);//游梁泵名称
}
else {
BindData.Columns["TakeWellName"].ColumnName = "游梁泵名称";
} if (CheckDYNID.Checked == false)
{
BindData.Columns.Remove(BindData.Columns["DYNID"]);//示功编号
}
else
{
BindData.Columns["DYNID"].ColumnName = "示功编号";
}
if (CheckOrgName.Checked == false)
{
BindData.Columns.Remove(BindData.Columns["OrgName"]); //所属井场
}
else
{
BindData.Columns["OrgName"].ColumnName = "所属井场";
}
if (CheckColumn1.Checked == false)
{
BindData.Columns.Remove(BindData.Columns["Column1"]); //启停机
}
else
{
BindData.Columns["Column1"].ColumnName = "启停机";
}
if (CheckSampleTime.Checked == false)
{
BindData.Columns.Remove(BindData.Columns["SampleTime"]);//采集时间
}
else
{
BindData.Columns["SampleTime"].ColumnName = "采集时间";
}
if (CheckdStroke.Checked == false)
{
BindData.Columns.Remove(BindData.Columns["dStroke"]);//冲程(m)
}
else
{
BindData.Columns["dStroke"].ColumnName = "冲程(m)";
}
if (CheckColumn2.Checked == false)
{
BindData.Columns.Remove(BindData.Columns["Column2"]);//冲次(/min)
}
else
{
BindData.Columns["Column2"].ColumnName = "冲次(/min)";
}
if (CheckColumn3.Checked == false)
{
BindData.Columns.Remove(BindData.Columns["Column3"]);//运行状态
}
else
{
BindData.Columns["Column3"].ColumnName = "运行状态";
}
if (CheckRecvTime.Checked == false)
{
BindData.Columns.Remove(BindData.Columns["RecvTime"]);//接收时间
}
else
{
BindData.Columns["RecvTime"].ColumnName = "接收时间";
}
BindData.Columns.Remove(BindData.Columns["dRunStatus"]);//判断条件
BindData.Columns.Remove(BindData.Columns["dFreq"]); //判断条件
BindData.Columns.Remove(BindData.Columns["date"]); //判断条件
} public void ExportToExcel(GridView dd)
{
string Exports = null;
string Contents = null;
if (RadioWord.Checked == true)
{
Exports = "GridviewWord.doc";
Contents = "application/ms-word";
}
if (RadioExcel.Checked == true)
{
Exports = "GridviewExcel.xls";
Contents = "application/ms-excel";
}
if (RadioTXT.Checked == true)
{
Exports = "GridviewWord.html";
Contents = "application/ms-html";
}
Response.AppendHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString("yyyy-MM-dd") + Exports);
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
//Response.ContentType = "application/ms-excel";
Response.ContentType = Contents;
Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=GB2312\">");
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);
dd.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
/// <summary>
/// 处理 runat="server" //注释掉下面的代码,否则在asp.net2.0下会报错(GridView是asp.net 2.0下的控件,1.1下一些控件也可以导出Excel或word)
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}麻烦提供代码,提供思路我也不会操作...刚刚涉及这方面
DataTable.Columns["OrgName"].SetOrdinal[0];