2010-11-05 10 views
1

Я разрабатываю веб-проект в asp.net 3.5Экспорт DataTable в Excel

Я хочу экспортировать datatable в Excel. Но есть 20.000 строк в datatable. Иногда возникает проблема с тайм-аутом.

protected string Worksheet97_Header() 
     { 
      string s = "<tr>"; 
      foreach (ExcelColumn col in Columns) 
      { 
       s += "<th>" + col.Header_Text + "</th>"; 
      } 
      s+="</tr>"; 
      return s; 
     } 
     protected string Worksheet97_Data() 
     { 
      string s = ""; 
      try 
      { 
       for (int i = 0; i < data.Rows.Count; i++) 
       { 
        s += "<tr>"; 
        foreach (ExcelColumn col in Columns) 
        { 
         if (col.Column_Type == "System.String") 
          s += "<td>" + data.Rows[i][col.Field_Name].ToString() + "</td>"; 
         if (col.Column_Type == "System.DateTime") 
          s += "<td>" + Convert.ToDateTime(data.Rows[i][col.Field_Name]).ToString("dd.MM.yyyy HH:mm:ss") + "</td>"; 
         if (col.Column_Type == "System.Int32") 
          s += "<td>" + data.Rows[i][col.Field_Name].ToString() + "</td>"; 
         if ((col.Column_Type == "System.Double") | 
          (col.Column_Type == "System.Decimal") | 
          (col.Column_Type == "System.Int16") | 
          (col.Column_Type == "System.Int32") | 
          (col.Column_Type == "System.Int64")) 

          s += "<td>" + Convert.ToDouble(data.Rows[i][col.Field_Name]).ToString("0.00") + "</td>"; 
        } 
       } 
      } 
      catch (Exception ex) 
      { 
       string a = ex.ToString();    

      } 

      return s; 
     } 

     public string Export_Excel97() 
     { 
      string s = ""; 
      s = "<table border=\"1\">"; 
      s += Worksheet97_Header(); 
      s += Worksheet97_Data(); 
      s += "</table>"; 
      return s; 
     } 

Спасибо.

+0

Пожалуйста, пост больше информации (предпочтительно код, который по тайм-ауту) и мы сможем вам помочь. – Codesleuth

+0

Я разместил .. – Jack

ответ

1

ИМХО, я думаю, вы должны отправить запрос, чтобы вы не загружали все в память.

Чтобы написать файл excel, вы также можете попробовать это решение и сравнить результаты работы: http://msmvps.com/blogs/deborahk/archive/2009/07/23/writing-data-from-a-datatable-to-excel.aspx, который будет использовать библиотеку объектов Microsoft Excel, поэтому вам нужно будет установить Excel на компьютере, на котором вы работаете. код.

HTH как-то.

С уважением!

Смежные вопросы