C# 查询行和列颠倒的Excel

C# 查询行和列颠倒的Excel,c#,excel,linq,excelquery,C#,Excel,Linq,Excelquery,如何查询行和列反转/旋转90度的Excel文件 这可以通过SELECT查询完成,还是需要通过编程方式递归单元格 这是针对.NET应用程序的,所以欢迎linq或其他建议 使用如下代码转置数据表: private DataTable GenerateTransposedTable(DataTable inputTable) { DataTable outputTable = new DataTable(inputTable.TableName); output

如何查询行和列反转/旋转90度的Excel文件

这可以通过SELECT查询完成,还是需要通过编程方式递归单元格

这是针对.NET应用程序的,所以欢迎linq或其他建议


使用如下代码转置数据表:

private DataTable GenerateTransposedTable(DataTable inputTable)
    {
        DataTable outputTable = new DataTable(inputTable.TableName);
        outputTable.Columns.Add(inputTable.Columns[0].ColumnName);


        foreach (DataRow inRow in inputTable.Rows)
        {
            string newColName = inRow[0].ToString();
            outputTable.Columns.Add(newColName);
        }


        for (int rCount = 1; rCount <= inputTable.Columns.Count - 1; rCount++)
        {
            DataRow newRow = outputTable.NewRow();


            newRow[0] = inputTable.Columns[rCount].ColumnName;
            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;
    }
专用数据表GenerateTransposedTable(数据表可输入)
{
DataTable outputTable=新的DataTable(Inputable.TableName);
可输出的.Columns.Add(可输入的.Columns[0].ColumnName);
foreach(inputable.Rows中的数据行inRow)
{
字符串newColName=inRow[0]。ToString();
outputTable.Columns.Add(newColName);
}

对于(int rCount=1;rCount使用如下代码转置数据表:

private DataTable GenerateTransposedTable(DataTable inputTable)
    {
        DataTable outputTable = new DataTable(inputTable.TableName);
        outputTable.Columns.Add(inputTable.Columns[0].ColumnName);


        foreach (DataRow inRow in inputTable.Rows)
        {
            string newColName = inRow[0].ToString();
            outputTable.Columns.Add(newColName);
        }


        for (int rCount = 1; rCount <= inputTable.Columns.Count - 1; rCount++)
        {
            DataRow newRow = outputTable.NewRow();


            newRow[0] = inputTable.Columns[rCount].ColumnName;
            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;
    }
专用数据表GenerateTransposedTable(数据表可输入)
{
DataTable outputTable=新的DataTable(Inputable.TableName);
可输出的.Columns.Add(可输入的.Columns[0].ColumnName);
foreach(inputable.Rows中的数据行inRow)
{
字符串newColName=inRow[0]。ToString();
outputTable.Columns.Add(newColName);
}

for(int rCount=1;rCount.NET不包括转置数据表的方法。您必须自己制作。本网站有一个转置方法示例教程。我将复制并粘贴以下代码片段:

private DataTable Transpose(DataTable dt)
{
DataTable dtNew = new DataTable();

//adding columns    
for(int i=0; i<=dt.Rows.Count; i++)
{
   dtNew.Columns.Add(i.ToString());
}



//Changing Column Captions: 
dtNew.Columns[0].ColumnName = " ";

 for(int i=0; i<dt.Rows.Count; i++) 
 {
  //For dateTime columns use like below
   dtNew.Columns[i+1].ColumnName =Convert.ToDateTime(dt.Rows[i].ItemArray[0].ToString()).ToString("MM/dd/yyyy");
  //Else just assign the ItermArry[0] to the columnName prooperty
 }

//Adding Row Data
for(int k=1; k<dt.Columns.Count; k++)
{
    DataRow r = dtNew.NewRow();
    r[0] = dt.Columns[k].ToString(); 
    for(int j=1; j<=dt.Rows.Count; j++)
    r[j] = dt.Rows[j-1][k];  
    dtNew.Rows.Add(r);
}

return dtNew;
}
专用数据表转置(数据表dt)
{
DataTable dtNew=新DataTable();
//添加列

for(int i=0;i.NET不包括转置数据表的方法。您必须自己制作。本网站提供了一个转置方法示例教程。我将复制并粘贴下面的代码片段:

private DataTable Transpose(DataTable dt)
{
DataTable dtNew = new DataTable();

//adding columns    
for(int i=0; i<=dt.Rows.Count; i++)
{
   dtNew.Columns.Add(i.ToString());
}



//Changing Column Captions: 
dtNew.Columns[0].ColumnName = " ";

 for(int i=0; i<dt.Rows.Count; i++) 
 {
  //For dateTime columns use like below
   dtNew.Columns[i+1].ColumnName =Convert.ToDateTime(dt.Rows[i].ItemArray[0].ToString()).ToString("MM/dd/yyyy");
  //Else just assign the ItermArry[0] to the columnName prooperty
 }

//Adding Row Data
for(int k=1; k<dt.Columns.Count; k++)
{
    DataRow r = dtNew.NewRow();
    r[0] = dt.Columns[k].ToString(); 
    for(int j=1; j<=dt.Rows.Count; j++)
    r[j] = dt.Rows[j-1][k];  
    dtNew.Rows.Add(r);
}

return dtNew;
}
专用数据表转置(数据表dt)
{
DataTable dtNew=新DataTable();
//添加列

对于(int i=0;我认为您可以使用这些Excel数据填充
数据表
,然后执行“反向转置”-您可以执行类似于此引用的操作,但使用的是反向方式:。谢谢Tetsuya Yamamoto我认为您可以使用这些Excel数据填充
数据表
,然后执行“反向转置”-您可以执行类似于此参考的操作,但反向操作:。谢谢山本哲也