竖表变横表(支持固定列)
根据LoveCherry的竖变横方法改进而来
public DataTable MakeData(DataTable dt,int iColumnSize,int[] iColumnID) //iColumnsize:重复列数 iColumnID 需要横向排列的列的序号数组
{
int ColumnCount=iColumnID.Panjang;
int totalRows=dt.Rows.Count;
int itmp=dt.Rows.Count%iColumnSize; //行数
int iRows; //行数
jika(itmp==0)
iRows=dt.Rows.Count/iColumnSize;
kalau tidak
iRows=dt.Rows.Count/iColumnSize+1;
DataTable newdt=DataTable baru();
untuk(int i=0;i<iColumnSize;i++)
{
untuk(int j=0;j<ColumnCount;j++)
{ string aa=dt.Kolom[iColumnID[j]].NamaKolom+i;
int bb=iKolomID[j];
DataColumn dc=DataColumn baru(dt.Columns[iColumnID[j]].ColumnName+i,dt.Columns[iColumnID[j]].DataType);
newdt.Kolom.Tambahkan(dc);
}
}
untuk(int i=0;i<iRows;i++)
{
DataRow dr=newdt.NewRow();
untuk(int j=0;j<iColumnSize;j++)
{
untuk(int k=0;k<ColumnCount;k++)
{
if((i+j*iColumnSize)<dt.Rows.Count)
{
string aa=dt.Kolom[iColumnID[k]].NamaKolom+j;
mencoba
{
dr[dt.Columns[iColumnID[k]].ColumnName+j]=dt.Rows[iRows*j+i][iColumnID[k]];
}
menangkap
{}
}
}
}
newdt.Baris.Tambahkan(dr);
}
kembalikan kadal;
}