利用DevExpress將DataTable資料匯出到Excel
阿新 • • 發佈:2019-02-01
方法:根據DataTable列名動態建立GridControl,然後利用GridView匯出Excel,同時還可以匯出其他形式檔案。
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid;
/// <summary> /// 匯出Excel /// </summary> /// <param name="datasource"></param> public void Export(DataTable datasource) { System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog(); saveFileDialog.DefaultExt = "xls"; saveFileDialog.Filter = "Excel檔案|*.xls"; if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { GridControl grid= new GridControl();; GridView view = new GridView(); grid.ViewCollection.Add(view); grid.MainView = view; view.GridControl = grid; foreach (DataColumn dc in datasource.Columns) { DevExpress.XtraGrid.Columns.GridColumn gridColumnNumber = view.Columns.AddVisible(dc.ColumnName); gridColumnNumber.FieldName = dc.ColumnName; } grid.DataSource = datasource; this.Controls.Add(grid);//重要 grid.ForceInitialize();//重要 view.BestFitColumns(); view.ExportToXls(saveFileDialog.FileName); } }
關鍵兩行程式碼必須有,否則view.DataSource為Null