查询行反转行和列的Excel

时间:2017-11-14 07:40:30

标签: c# excel linq excelquery

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

是否可以使用SELECT查询完成,还是需要以编程方式递归单元格?

这是一个.NET应用程序,所以欢迎linq或其他建议。

Skewed Excel

2 个答案:

答案 0 :(得分:1)

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

bool peek(const T& val = T{}) const

答案 1 :(得分:1)

.NET不包含转置数据表的方法。你必须自己做。这个网站Link有一个关于示例转置方法的教程。我将复制并粘贴下面的代码段:

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;
}