豎表變橫表(支持固定列)
根據(jù)lovecherry的豎變橫方法改進(jìn)而來
public datatable makedata(datatable dt,int icolumnsize,int[] icolumnid) //icolumnsize:重復(fù)列數(shù) icolumnid 需要橫向排列的列的序號數(shù)組
{
int columncount=icolumnid.length;
int totalrows=dt.rows.count;
int itmp=dt.rows.count%icolumnsize; //行數(shù)
int irows; //行數(shù)
if(itmp==0)
irows=dt.rows.count/icolumnsize;
else
irows=dt.rows.count/icolumnsize+1;
datatable newdt=new datatable();
for(int i=0;i<icolumnsize;i++)
{
for(int j=0;j<columncount;j++)
{ string aa=dt.columns[icolumnid[j]].columnname+i;
int bb=icolumnid[j];
datacolumn dc=new datacolumn(dt.columns[icolumnid[j]].columnname+i,dt.columns[icolumnid[j]].datatype);
newdt.columns.add(dc);
}
}
for(int i=0;i<irows;i++)
{
datarow dr=newdt.newrow();
for(int j=0;j<icolumnsize;j++)
{
for(int k=0;k<columncount;k++)
{
if((i+j*icolumnsize)<dt.rows.count)
{
string aa=dt.columns[icolumnid[k]].columnname+j;
try
{
dr[dt.columns[icolumnid[k]].columnname+j]=dt.rows[irows*j+i][icolumnid[k]];
}
catch
{}
}
}
}
newdt.rows.add(dr);
}
return newdt;
}
新聞熱點(diǎn)
疑難解答
圖片精選