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