必威游戏app官方下载_必威体育中文app_必威备用网址 - 可用的C#从大量数据的DataTable高效率快速导出到Excel的方法及源代码 - 技术分享- 专业的四川成都软件必威体育中文app公司 - 创软科技
分享最实用的技术,创造更大的价值

可用的C#从大量数据的DataTable高效率快速导出到Excel的方法及源代码

C#从大量数据的DataTable高效率快速导出到Excel的方法及源代码


软件必威体育中文app过程中,经常会将大批量数据导出到excel,但常用的datatable循环方式导出excel已经很大的影响了性能。创软软件必威体育中文app团队经过多次调试分析,总结了快速将大批量DataTable中的数据导出到excel表格,同时解决了彻底关闭Excel进程的问题。


话不多说,直接上代码

using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;


//dt:从数据库读取的数据;file_name:保存路径;sheet_name:表单名称
private void DataTableToExcel(DataTable dt, string file_name, string sheet_name)
{
       Microsoft.Office.Interop.Excel.Application Myxls = new  Microsoft.Office.Interop.Excel.Application();
       Microsoft.Office.Interop.Excel.Workbook Mywkb = Myxls.Workbooks.Add();
       Microsoft.Office.Interop.Excel.Worksheet MySht = Mywkb.ActiveSheet;
       MySht.Name = sheet_name;
       Myxls.Visible = false;
       Myxls.DisplayAlerts = false;
       try
       {
              //写入表头
              object[] arrHeader = new object[dt.Columns.Count];
              for(int i = 0; i < dt.Columns.Count; i++)
              {
                     arrHeader[i] = dt.Columns[i].ColumnName;
              }
              MySht.Range[Mysht.Cells[1,1], MySht.Cells[1,dt.Columns.Count]].Value2 = arrHeader;
              //写入表体数据
              object[,] arrBody = new object[dt.Rows.Count, dt.Columns.Count];
              for(int i = 0; i < dt.Rows.Count; i++)
              {
                      for(int j = 0; j < dt.Columns.Count; j++)
                      {
                              arrBody[i,j] = dt.Rows[i][j].ToString();
                      }
              }
              MySht.Range[MySht.Cells[2,1], MySht.Cells[dt.Rows.Count + 1, dt.Columns.Count]].Value2 = arrBody;
              if(Mywkb != null)
              {
                      Mywkb.SaveAs(file_name);
                      Mywkb.Close(Type.Missing, Type.Missing, Type.Missing);
                      Mywkb = null;
              }
       }
       catch(Exception ex)
       {
               MessageBox.Show(ex.Message, "系统提示");
       }
       finally
       {
                //彻底关闭Excel进程
                if(Myxls != null)
                {
                       Myxls.Quit();
                       try
                       {
                              if(Myxls != null)
                              {
                                    int pid;
                                    GetWindowThreadProcessId(new IntPtr(Myxls.Hwnd), out pid);
                                    System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(pid);
                                     p.Kill();
                              }
                       }
                       catch(Exception ex)
                       {
                              MessageBox.Show("结束当前EXCEL进程失败:" + ex.Message);
                       }
                       Myxls = null;
                }
                GC.Collect();
       }
}


需要C#从大量数据的DataTable高效率快速导出到Excel的方法及源代码的同学可以试一下,上面代码已经应用到了创软必威体育中文app框架平台。

联系
QQ
电话
咨询电话:189-8199-7898
TOP

必威游戏app官方下载_必威体育中文app_必威备用网址

  • <tr id='b43451'><strong id='b43451'></strong><small id='b43451'></small><button id='b43451'></button><li id='b43451'><noscript id='b43451'><big id='b43451'></big><dt id='b43451'></dt></noscript></li></tr><ol id='b43451'><option id='b43451'><table id='b43451'><blockquote id='b43451'><tbody id='b43451'></tbody></blockquote></table></option></ol><u id='b43451'></u><kbd id='b43451'><kbd id='b43451'></kbd></kbd>

    <code id='b43451'><strong id='b43451'></strong></code>

    <fieldset id='b43451'></fieldset>
          <span id='b43451'></span>

              <ins id='b43451'></ins>
              <acronym id='b43451'><em id='b43451'></em><td id='b43451'><div id='b43451'></div></td></acronym><address id='b43451'><big id='b43451'><big id='b43451'></big><legend id='b43451'></legend></big></address>

              <i id='b43451'><div id='b43451'><ins id='b43451'></ins></div></i>
              <i id='b43451'></i>
            1. <dl id='b43451'></dl>
              1. <blockquote id='b43451'><q id='b43451'><noscript id='b43451'></noscript><dt id='b43451'></dt></q></blockquote><noframes id='b43451'><i id='b43451'></i>