Как я могу экспортировать данные в MS Word 2007, Excel 2007, CSV с asp.net? - PullRequest
1 голос
/ 23 марта 2010

Я использую приведенный ниже код для экспорта DataTable в формат MS Word, Excel, CSV, и он работает нормально.Но проблема в том, что этот код экспортируется в MS Word 2003, Excel 2003 версии.Мне нужно экспортировать свою DataTable в Word 2007, Excel 2007, CSV, потому что я должен обрабатывать более 100 000 записей одновременно и, как мы знаем, Excel 2003 поддерживает только 65 000 записей.Вы знаете, как экспортировать DataTable или DataSet в MS Word 2007, Excel 2007.

 public static void Convertword(DataTable dt, HttpResponse Response,string filename)
{
        Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=" + filename + ".doc");
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.ContentType = "application/vnd.word";
        System.IO.StringWriter stringWrite = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
        System.Web.UI.WebControls.GridView dg = new System.Web.UI.WebControls.GridView();
        dg.DataSource = dt;
        dg.DataBind();
        dg.RenderControl(htmlWrite);
        Response.Write(stringWrite.ToString());
        Response.End();
        //HttpContext.Current.ApplicationInstance.CompleteRequest();

}

  public static void Convertexcel(DataTable dt, HttpResponse Response, string filename)
{

        Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=" + filename + ".xls");
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.ContentType = "application/vnd.ms-excel";
        System.IO.StringWriter stringWrite = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
        System.Web.UI.WebControls.DataGrid dg = new System.Web.UI.WebControls.DataGrid();
        dg.DataSource = dt;
        dg.DataBind();
        dg.RenderControl(htmlWrite);
        Response.Write(stringWrite.ToString());
        Response.End();
        //HttpContext.Current.ApplicationInstance.CompleteRequest();

}

 public static void ConvertCSV(DataTable dataTable, HttpResponse Response, string filename)
{

        Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment;filename=" + filename + ".csv");
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.ContentType = "Application/x-msexcel";
        StringBuilder sb = new StringBuilder();
        if (dataTable.Columns.Count != 0)
        {
            foreach (DataColumn column in dataTable.Columns)
            {
                sb.Append(column.ColumnName + ',');
            }
            sb.Append("\r\n");
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (DataColumn column in dataTable.Columns)
                {
                    if(row[column].ToString().Contains(',')==true)
                    {
                        row[column] = row[column].ToString().Replace(",", "");
                    }
                    sb.Append(row[column].ToString() + ',');
                }
                sb.Append("\r\n");
            }
        }
        Response.Write(sb.ToString());
        Response.End();
        //HttpContext.Current.ApplicationInstance.CompleteRequest();

}

1 Ответ

2 голосов
/ 24 марта 2010

Использование application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

...