动态创建gridview,导出Excel数据
2017-07-04 14:34
351 查看
先创建一个GridControl,在创建一个GridView视图,再传入数据
GridControl CreateGrid(List<marketinformation> pagemodel)
{
GridControl grid = new GridControl(); ;
GridView view = new GridView();
grid.ViewCollection.Add(view);
grid.MainView = view;
view.GridControl = grid;
foreach (GridColumn column in gridView2.Columns)
{
DevExpress.XtraGrid.Columns.GridColumn gridColumnNumber = view.Columns.AddVisible(column.FieldName.ToString());
gridColumnNumber.Caption = column.Caption.ToString();
gridColumnNumber.FieldName = column.FieldName.ToString();
}
grid.DataSource = pagemodel;
this.Controls.Add(grid);//重要
grid.ForceInitialize();//重要
BestColumns(view);
view.OptionsPrint.AutoWidth = false;
return grid; }
然后数据分页创建
IPrintable[] arr(List<marketinformation> data)
{
List<IPrintable> Printable=new List<IPrintable>();
int PageIndex=0;
int PageSize=50000;
int CurrentIndex=0;
int TotalCount=data.Count;
for(PageIndex=0;CurrentIndex<TotalCount;PageIndex++)
{
var PageData = data.Skip(PageIndex*PageSize).Take(PageSize).ToList();
Printable.Add(CreateGrid(PageData));
CurrentIndex=(PageIndex+1)*PageSize;
}
return Printable.ToArray(); }
最后数据多的时候自动列宽或假死,可以循环固定列宽,也可以写字段名
void BestColumns(GridView view)
{
if (chkeds.Checked)
{
view.OptionsView.ColumnAutoWidth = false;
foreach (GridColumn column in view.Columns)
{
if (column.Visible)
{
switch (column.FieldName.ToString())
4000
{
case "caccount":
view.Columns["caccount"].Width = 150;
break;
case "cunitname":
view.Columns["cunitname"].Width = 300;
break;
case "ddate":
view.Columns["ddate"].Width = 150;
break;
case "cemskind":
view.Columns["cemskind"].Width = 100;
break;
case "cnum":
view.Columns["cnum"].Width = 150;
break;
case "dsysdate":
view.Columns["dsysdate"].Width = 150;
break;
default:
view.Columns[column.FieldName].Width = 100;
break;
}
}
}
}
else
{
view.OptionsView.ColumnAutoWidth = true;
foreach (GridColumn column in view.Columns)
{
if (column.Visible)
{
view.Columns[column.FieldName].Width = 75;
}
}
} }
GridControl CreateGrid(List<marketinformation> pagemodel)
{
GridControl grid = new GridControl(); ;
GridView view = new GridView();
grid.ViewCollection.Add(view);
grid.MainView = view;
view.GridControl = grid;
foreach (GridColumn column in gridView2.Columns)
{
DevExpress.XtraGrid.Columns.GridColumn gridColumnNumber = view.Columns.AddVisible(column.FieldName.ToString());
gridColumnNumber.Caption = column.Caption.ToString();
gridColumnNumber.FieldName = column.FieldName.ToString();
}
grid.DataSource = pagemodel;
this.Controls.Add(grid);//重要
grid.ForceInitialize();//重要
BestColumns(view);
view.OptionsPrint.AutoWidth = false;
return grid; }
然后数据分页创建
IPrintable[] arr(List<marketinformation> data)
{
List<IPrintable> Printable=new List<IPrintable>();
int PageIndex=0;
int PageSize=50000;
int CurrentIndex=0;
int TotalCount=data.Count;
for(PageIndex=0;CurrentIndex<TotalCount;PageIndex++)
{
var PageData = data.Skip(PageIndex*PageSize).Take(PageSize).ToList();
Printable.Add(CreateGrid(PageData));
CurrentIndex=(PageIndex+1)*PageSize;
}
return Printable.ToArray(); }
最后数据多的时候自动列宽或假死,可以循环固定列宽,也可以写字段名
void BestColumns(GridView view)
{
if (chkeds.Checked)
{
view.OptionsView.ColumnAutoWidth = false;
foreach (GridColumn column in view.Columns)
{
if (column.Visible)
{
switch (column.FieldName.ToString())
4000
{
case "caccount":
view.Columns["caccount"].Width = 150;
break;
case "cunitname":
view.Columns["cunitname"].Width = 300;
break;
case "ddate":
view.Columns["ddate"].Width = 150;
break;
case "cemskind":
view.Columns["cemskind"].Width = 100;
break;
case "cnum":
view.Columns["cnum"].Width = 150;
break;
case "dsysdate":
view.Columns["dsysdate"].Width = 150;
break;
default:
view.Columns[column.FieldName].Width = 100;
break;
}
}
}
}
else
{
view.OptionsView.ColumnAutoWidth = true;
foreach (GridColumn column in view.Columns)
{
if (column.Visible)
{
view.Columns[column.FieldName].Width = 75;
}
}
} }
相关文章推荐
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- GridView数据导出到Word/Excel中
- 表格控件(GridView)数据格式化导出到Excel并下载.
- GridView中的数据导出到Excel中
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- 从GridView导出数据到Excel时的注意事项
- 扩展GridView控件(8) - 导出数据源的数据为Excel、Word或Text
- GridView数据导出到Word/Excel中
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- 扩展GridView控件(8) - 导出数据源的数据为Excel、Word或Text
- GridView 导出数据到 EXCEL 失败
- GridView数据导出到Excel中
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Excel数据区域创建动态快照
- 将repeater、datalist、gridview中的数据导出到Excel中的简单方法
- GridView导出数据到excel数字变为科学记数法的问题的解决办法
- 如何将gridview中的数据导出到EXCEL中去