C#Transpose()方法转换excel表中的行和列

Sha*_*ami 2 .net c# excel c#-4.0

我想转置Excel工作表的行和列并保存它.我想为此目的使用C#transpose()方法.任何人都可以告诉它如何在C#中使用示例,语法是什么,创建什么对象来调用transpose()方法?

谢谢.

小智 8

首先,你必须将excel表转换为datatable,然后以编程方式转换datatable的行和列.为了将excel表转换为datatable,你可以在stackoverflow上搜索问题,因为它有很多类似的问题.对于trasposing数据表下面的代码工作;

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;
}
Run Code Online (Sandbox Code Playgroud)