2009-04-03 4 views
0

Как я могу экспортировать набор данных в файл, который можно открыть Excel 2003?Экспорт данных в Excel

Вы разработаете его? потому что это diffculties, чтобы понять CSV/TSV

Марк будет у дать нам образец для этого он .в Теперь оны слышал термины CSV/TSV

+0

http://www.google.com/search?q=datatable+to+csv –

ответ

0

Вероятно, самый простой маршрут для экспорта отдельных таблиц в формате CSV/TSV. «Сеть полна образцов этого.

+0

kumar, csv = значения, разделенные запятыми, tsv = вкладки разделенные значения –

0

Если вы хотите сделать это в 2003 году, вы уже опоздали на шесть лет. ;)

Если вы имели в виду что-то еще на «2003», возможно, вы могли бы прояснить ситуацию, и люди могли бы дать лучший ответ (хотя предыдущий ответ, как CSV, является довольно хорошим).

0

XML-таблица может быть тем, что вы ищете.

Посмотрите на this ответ.

3

Я думаю, это поможет вам. Использование обработчика HTTP

<%@ WebHandler Language="C#" Class="DownloadAllEvent" %> 

using System; 
using System.Web; 
using System.Data.SqlClient; 
using System.Data; 
using System.Text; 
using System.IO; 

public class DownloadAllEvent : IHttpHandler 
{ 
    const int BUFFERSIZE = 1024; 

    public bool IsReusable 
    { 
     get 
    { 
      return true; 
    } 
} 

public void ProcessRequest(HttpContext context) 
{ 
    HttpResponse response = context.Response; 
    HttpRequest request = context.Request; 
    response.BufferOutput = true; 
    response.ContentType = "application/octet-stream"; 
    response.AddHeader("Content-Disposition", "attachment; filename=Events.csv"); 
    response.Cache.SetCacheability(HttpCacheability.NoCache); 
    //string csvfile = request.QueryString["csvfile"]; 
    string strNoofIds = request.QueryString["NoofIds"]; 
    // declare variables or do something to pass parameter to writecalEntry function 

    writeCalEntry(response.Output, strguid, sectionid); 
    response.End(); 
} 

    public void writeCalEntry(TextWriter output, string[] strguid,string sectionid) 
    { 
     DataTable dt = createDataTable(); 
     DataRow dr; 

     StringBuilder sbids = new StringBuilder(); 



     // process table if neeed.. use following code to create CSV format string from table 

     string separator;  

     separator = ","; //default 

     string quote = "\""; 

     //create CSV file 
     //StreamWriter sw = new StreamWriter(AbsolutePathAndFileName); 

     //write header line 

     StringBuilder sb = new StringBuilder(); 


     int iColCount = dt.Columns.Count; 
     for (int i = 0; i < iColCount; i++) 
     { 
      //sw.Write(TheDataTable.Columns[i]); 
      sb.Append(dt.Columns[i]); 
      if (i < iColCount - 1) 
      { 
       //sw.Write(separator); 
       sb.Append(separator); 
      } 
     } 
     //sw.Write(sw.NewLine); 
     sb.AppendLine(); 

     //write rows 
     foreach (DataRow tempdr in dt.Rows) 
     { 
      for (int i = 0; i < iColCount; i++) 
      { 
       if (!Convert.IsDBNull(tempdr[i])) 
       { 
        string data = tempdr[i].ToString(); 
        data = data.Replace("\"", "\\\""); 
        //sw.Write(quote + data + quote); 
        sb.Append(quote + data + quote); 
       } 
       if (i < iColCount - 1) 
       { 
        //sw.Write(separator); 
        sb.Append(separator); 
       } 
      } 
      //sw.Write(sw.NewLine); 
      sb.AppendLine(); 
     } 
     //sw.Close(); 
     UnicodeEncoding uc = new UnicodeEncoding(); 
     output.WriteLine(sb); 

} 

public static DataTable createDataTable() 
{ 
    DataTable dt = new DataTable("EventsData"); 
    // create tables as needed which will be converted to csv format. 
    return dt; 
} 

называют это HttpHandler файлом, в котором вы хотите экспортировать данные, чтобы Excell формата, как

Response.Redirect("downloadFile.ashx"); 

Вы можете отправить параметры также в Response.Redirect, которые могут быть выбраны в .ashx файла. Я думаю, это будет hepl you.

0

Лучший способ, которым я лично нашел, - использовать XML и компонент электронной таблицы.

Пример кода будет слишком запутанна, чтобы разместить здесь, но начать здесь и посмотреть, куда она ведет: http://msdn.microsoft.com/en-us/library/aa140062.aspx

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