相关文章推荐
private DataTable GenerateTransposedTable(DataTable inputTable)
     DataTable outputTable = new DataTable();
     // Add columns by looping rows
     // Header row's first column is same as in inputTable
     outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString());
     // Header row's second column onwards, 'inputTable's first column taken
     foreach (DataRow inRow in inputTable.Rows)
         string newColName = inRow[0].ToString();
         outputTable.Columns.Add(newColName);
     // Add rows by looping columns        
     for (int rCount = 1; rCount <= inputTable.Columns.Count - 1; rCount++)
         DataRow newRow = outputTable.NewRow();
         // First column is inputTable's Header row's second column
         newRow[0] = inputTable.Columns[rCount].ColumnName.ToString();
         for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++)
             string colValue = inputTable.Rows[cCount][rCount].ToString();
             newRow[cCount + 1] = colValue;
         outputTable.Rows.Add(newRow);
     return outputTable;

@qyhack: 我明白了,你想站在原地,跺跺脚,然后代码就自动生成了。

或者是想等全世界所有的功能都已经有现成的代码....

请耐心等候,我们正在开发Visual Studio 3050,

到那时候,你还没有开始想要干什么的时候,

Visual Studio 已经开始进行预编译了,等你想到一半的时候,结果已经出来了。

那个啥AMAZON说的你还没有下订单,快递已经在路上那个已经全部OUT掉了。

支持(0) 反对(0) 爱编程的大叔 园豆:30839 (高人七级) 2015-01-06 10:54

@qyhack: 仔细看了一下你的需求,你说的跟你要的是不同的。

对于这种需求,根本不需要进行数据转换。

在EXCEL中,这个叫数据透视表,你可以自己GOOGLE一下PivotTable或者“数据透视表”

在WINFORM中,有一种控件叫PIVOTCONTROL,只要你给他A中的数据表,

他就可以帮你显示成为B中的样子,完全不需要转换。

在WEB中,自己手写代码也很容易实现,要不然找个数据透视表控件也是分分钟的事。

实在不行,还可以用SQL SERVER的Analysis Service。(不过这个更高端,一般人更加用不来)

支持(0) 反对(0) 爱编程的大叔 园豆:30839 (高人七级) 2015-01-06 11:16

@qyhack: 你直接搜索EXCEL透视表,运气好的话直接有示例。

http://v.youku.com/v_show/id_XNzE3NzM2Mjg=.html?from=y1.2-1-105.3.2-1.1-1-1-1

这是视频教学。

支持(0) 反对(0) 爱编程的大叔 园豆:30839 (高人七级) 2015-01-06 11:27