最近做Stacked和分组报表显示的时候:
需要进行DT的转置写一个方法处理如下:
////// DataTable 转置 以左顶点做轴做转置 ///public static DataTable Transpose(DataTable dt_orig,string column) { //创建第一列 DataTable newdt= new DataTable(); newdt.Columns.Add(new System.Data.DataColumn(column, typeof(System.String))); //创建数据列 //第二列开始 //DataTable dt_orig = (DataTable)ViewState["dt_orig"]; for (int i = 0; i < dt_orig.Rows.Count; i++) { string rowname = dt_orig.Rows[i][0].ToString().Trim(); //string colname = dt_orig.Columns[i].ColumnName; //第i+1列名 newdt.Columns.Add(new System.Data.DataColumn(rowname, typeof(System.Decimal))); } //增加数据行 for (int j = 1; j < dt_orig.Columns.Count; j++)//去掉最后一列的类型 { DataRow dr = newdt.NewRow(); dr = newdt.NewRow(); dr[0] = dt_orig.Columns[j].ColumnName.ToString(); for (int k = 1; k <= dt_orig.Rows.Count; k++) { dr[k] = dt_orig.Rows[k - 1][j].ToString(); } newdt.Rows.Add(dr); } return newdt; }