现有dev girdview表中存储了一些数据,想把这些数据导出到excel中。网上查过了,没看懂,希望有好人帮忙详细解答下,感激不尽。
DevExpress里面直接有函数可以导出到EXCEL的。
最简单的方法就是调用GridView.ShowPrintPreview()方法,会出来预览窗口,让用户自己选择打印或导出,而且导出支持的格式很多。
我用的是13.1,直接导出的方法,你可以上面楼上的,也可以参考:http://tiansoft.iteye.com/blog/977790
楼上的的我没试过,另一个我用过,但是提示我ExportXlsProvider类过时了。
/// <summary>
/// 保存Excel文件
/// </summary>
/// <param name="gridView">数据源(GridView)</param>
/// <param name="fileName">文件名</param>
public void ExploreExcel(DevExpress.XtraGrid.Views.Grid.GridView gridView, string fileName)
{isExport = true;
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Title = "请选择文件存放路径";
saveFile.Filter = "Excel文档(*.xls)|*.xls|Excel文档(*.xlsx)|*.xlsx";
saveFile.FileName = fileName;
if (saveFile.ShowDialog() == DialogResult.OK)
{
DevExpress.XtraPrinting.XlsExportOptions options = new DevExpress.XtraPrinting.XlsExportOptions();
options.TextExportMode = DevExpress.XtraPrinting.TextExportMode.Text;
options.SheetName = fileName;
gridView.OptionsPrint.AutoWidth = false;
gridView.OptionsPrint.AllowCancelPrintExport = false;
gridView.AppearancePrint.Row.Font = new System.Drawing.Font("宋体", 9);
try
{
gridView.ExportToXls(saveFile.FileName, options);
}
catch (Exception ex)
{
MessageBox.Show("文件已打开,正在使用中,导出失败!");
isExport = false;
}
if(isExport)
{
if(System.Windows.Forms.MessageBox.Show("导出成功,是否打开文件?","提示",MessageBoxButtons.YesNo)==DialogResult.Yes)
System.Diagnostics.Process.Start(saveFile.FileName);
}
}
}