对DataTable进行动态的行转列处理
需要分列的项和需要统计的项都是不定的,层次也是不定的
首先获取一个DataTable,然后对DataTable的数据进行处理。
例如:
原结构:姓名 性别 课目 成绩 期中/期末
成绩
目标结构1:姓名 性别 期中 期末
语 数 英 语 数 英
成绩
目标结构2:姓名 性别 语 数 英
期中 期末 期中 期末 期中 期末
成绩
目标结构3:姓名 性别 期中/期末 语 数 英
...
当然还可能有其他形式的结构,比如有多个统计字段等等,有没有做过的高手指点下
DataTable
行转列
------解决方案--------------------相对来说比较简单,只能给你参考代码。
/// <summary>
/// 将DataTable行列转换
/// </summary>
/// <param name="src">要转换的DataTable</param>
/// <param name="columnHead">要作为Column的哪列</param>
/// <returns></returns>
public static DataTable Col2Row(DataTable src, int columnHead)
{
DataTable result = new DataTable();
DataColumn myHead = src.Columns[columnHead];
result.Columns.Add(myHead.ColumnName);
for (int i = 0; i < src.Rows.Count; i++)
{
result.Columns.Add(src.Rows[i][myHead].ToString());
}
//
foreach (DataColumn col in src.Columns)
{
if (col == myHead)
&n