2016-02-23 1 views
0

Я использую этот код для экспорта данных GridView в excel, код работает нормально, но файл Excel не поддерживает некоторые операции; Если я печатаю метки из этого файла, он показывает «Ошибка: внешняя таблица не в ожидаемом формате» Что делать ??? Есть ли способ экспортировать Excel в простом или без какого-либо форматирования, как первенствовать имеет такое же форматирование, как в GridView ...Не удалось экспортировать файл excel через asp.net C#

protected void btnExcel1_Click(object sender, ImageClickEventArgs e) 
{ 
    Response.ClearContent(); 
    Response.Buffer = true; 
    Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "ExcelSheet.xls")); 
    Response.ContentType = "application/ms-excel"; 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter htw = new HtmlTextWriter(sw); 
    GridView1.AllowPaging = false; 
    //Change the Header Row back to white color 
    GridView1.HeaderRow.Style.Add("background-color", "#FFFFFF"); 
    //Applying stlye to gridview header cells 
    for (int i = 0; i < GridView1.HeaderRow.Cells.Count; i++) 
    { 
     GridView1.HeaderRow.Cells[i].Style.Add("background-color", "#507CD1"); 
    } 
    int j = 1; 
    //This loop is used to apply stlye to cells based on particular row 
    foreach (GridViewRow gvrow in GridView1.Rows) 
    { 
     gvrow.BackColor = Color.White; 
     if (j <= GridView1.Rows.Count) 
     { 
      if (j % 2 != 0) 
      { 
       for (int k = 0; k < gvrow.Cells.Count; k++) 
       { 
        gvrow.Cells[k].Style.Add("background-color", "#EFF3FB"); 
       } 
      } 
     } 
     j++; 
    } 
    GridView1.RenderControl(htw); 
    Response.Write(sw.ToString()); 
    Response.End(); 
} 

ответ

0

попробуйте следующий код: -

using Excel = Microsoft.Office.Interop.Excel; 
using System.Reflection; 
using System.IO; 

     //Print using Ofice InterOp 
     Excel.Application excel = new Excel.Application(); 

     var workbook = (Excel._Workbook)(excel.Workbooks.Add(Missing.Value)); 

     for (var i = 0; i < dataset.Tables.Count; i++) 
     { 

       if (workbook.Sheets.Count <= i) 
       { 
        workbook.Sheets.Add(Type.Missing, Type.Missing, Type.Missing, 
             Type.Missing); 
       } 

       //NOTE: Excel numbering goes from 1 to n 
       var currentSheet = (Excel._Worksheet)workbook.Sheets[i + 1]; 

       for (var y = 0; y < dataset.Tables[i].Rows.Count; y++) 
       { 
        for (var x = 0; x < dataset.Tables[i].Rows[y].ItemArray.Count(); x++) 
        { 
         currentSheet.Cells[y+1, x+1] = dataset.Tables[i].Rows[y].ItemArray[x]; 
        } 
       } 
     } 

     string outfile = @"C:\excel.xlsx"; 

     workbook.SaveAs(outfile, Type.Missing, Type.Missing, Type.Missing, 
         Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, 
         Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
         Type.Missing); 

     workbook.Close(); 
     excel.Quit(); 
Смежные вопросы