数据库查询结果导出Excel文件太慢

plcly1 2013-12-17 03:59:57
目前使用的方法是通过语句赋值给DataGridView,然后DataGridView导出Excel。
但是当数据有几千条的时候,遍历导出的方法太慢了。
基本就是卡死了。
求教有没有快速一点的导出Excel方法。
...全文
559 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
plcly1 2013-12-19
  • 打赏
  • 举报
回复
引用 2 楼 hdhai9451 的回复:
你能帖出你的代码吗?在遍历过程中你有没有访问数据库? 建议你一次性返回所有数据,其实遍历不要多少时间,就怕遍历过程中你访问的方法花时间太多导致变慢跑
 private void ExportExcel(string fileName, DataGridView myDGV)
        {

            Microsoft.Office.Interop.Excel.Application exapp = new Microsoft.Office.Interop.Excel.Application();
            exapp.Visible = false;

            Microsoft.Office.Interop.Excel.Workbooks workbooks = exapp.Workbooks;
            Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1

            for (int i = 0; i < myDGV.ColumnCount; i++)
            {
                worksheet.Cells[1, i + 1] = myDGV.Columns[i].HeaderText;
            }

            for (int r = 0; r < myDGV.Rows.Count; r++)
            {
                for (int j = 0; j < myDGV.ColumnCount; j++)
                {
                    worksheet.Cells[r + 2, j + 1] = myDGV.Rows[r].Cells[j].Value;
                }
            }
            worksheet.Columns.EntireColumn.AutoFit();
            try
            {
                workbook.SaveCopyAs(fileName);
                workbook.Saved = true;
                exapp.Quit();
                GC.Collect();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

            }
        }
熙风 2013-12-19
  • 打赏
  • 举报
回复
Andy__Huang 2013-12-17
  • 打赏
  • 举报
回复
你能帖出你的代码吗?在遍历过程中你有没有访问数据库? 建议你一次性返回所有数据,其实遍历不要多少时间,就怕遍历过程中你访问的方法花时间太多导致变慢跑
好基友一被子 2013-12-17
  • 打赏
  • 举报
回复
不要用遍历,直接区域赋值
 Range rColumCost4 = wst.get_Range(wst.Cells[1, j+1], wst.Cells[dt.Rows.Count + 1, j+1]);

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧