用微软自带效率底,能直接用:
测试1秒20+的数据
Microsoft.Office.Interop.Excel
public static void ExportToExcel(GridView gridView, string 文件名)
{
System.Data.DataTable dt = (gridView.DataSource as System.Data.DataView).Table;
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Excel文件(*.xls)|*.xls";
dlg.FilterIndex = 0;
dlg.RestoreDirectory = true;
//dlg.CreatePrompt = true;
dlg.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
dlg.FileName = string.Format("{0}_{1}", DateTime.Now.ToString("yyyy-MM-dd HH时mm分"), 文件名);
if (dlg.ShowDialog() != DialogResult.OK) return;
string filePath = dlg.FileName;
using (DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm("请稍等", "正在导出数据...", new Size(400, 80)))
{
int OLDOFFICEVESION = -4143;
int NEWOFFICEVESION = 56;
//保存excel文件的格式
int FormatNum;
//excel版本号
string Version;
//启动应用
Excel.Application xlApp = new Excel.Application();
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Excel.Workbooks workbooks = xlApp.Workbooks;
//创建文件
Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
//创建sheet
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
//获取你使用的excel 的版本号
Version = xlApp.Version;
//使用Excel 97-2003
i