2016-07-13 3 views
0

Meine Webanwendung stellt eine Verbindung zur MySql-Datenbank her und Benutzer filtern die Daten in Gridview durch Auswahl des Datumsbereichs. Mein Problem ist jetzt, wenn die Benutzer auf die Schaltfläche Export klicken. die Exportdatei (Excel) zeigt aber nicht im Benutzercomputer sondern im Server? Ich möchte es mit ihren Computern zeigen, können Sie mir bitte helfen. Vielen Dank für Ihre Antwort.So exportieren Sie Gridview nach Excel, arbeiten in Local, aber nicht bei Bereitstellung über IIS

-Code hinter in Export_Button

protected void Export_Click(object sender, EventArgs e) 
    { 
      Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 
      excel.Visible = true; 
      Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(System.Reflection.Missing.Value); 
      Microsoft.Office.Interop.Excel.Worksheet sheet1 = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[1]; 
      int StartCol = 1; 
      int StartRow = 1; 
      int j = 0, i = 0; 

      //Write Headers 

      for (j = 0; j < GridView1.Columns.Count; j++) 
       { 
       Microsoft.Office.Interop.Excel.Range myRange = (Microsoft.Office.Interop.Excel.Range)sheet1.Cells[StartRow, StartCol + j]; 
       myRange.Value2 = GridView1.Columns[j].HeaderText; 
       } 

      StartRow++; 

      //Write datagridview content 
      for (i = 0; i < GridView1.Rows.Count; i++) 
      { 
       for (j = 0; j < GridView1.Columns.Count; j++) 
       { 
        try 
        { 
         Microsoft.Office.Interop.Excel.Range myRange = (Microsoft.Office.Interop.Excel.Range)sheet1.Cells[StartRow + i, StartCol + j]; 
         myRange.Value2 = GridView1.Rows[i].Cells[j].Text == null ? "" : GridView1.Rows[i].Cells[j].Text; 
        } 
        catch 
        { 
         ; 
        } 
       } 
      } 
     } 
+0

Welche Ausnahme erhalten Sie? Ich denke, Microsoft.Office.Interop.Excel.Worksheet möglicherweise nicht in Ihrer Hosting-Umgebung – Sami

+0

Ich bekomme keine Ausnahme, wenn ich die Identität von Excel in "The Interactive User", aber wenn ich es in "The Launching User "Dieser Fehler wird angezeigt" Microsoft Excel kann kein Dokument mehr öffnen oder speichern, da nicht genügend Arbeitsspeicher oder Speicherplatz verfügbar ist. " – Seryu

Antwort

0

, nachdem sie in Netz gründlich suchen, ich mein Problem endlich gelöst, ich hoffe, es Ihnen in naher Zukunft helfen kann.

Ich habe die Aspose-Methode verwendet, es war großartig und perfekte Lösung! Unten ist mein neuer Code hinter meinem Export_Button hofft es hilft!

 //Instantiate a new workbook 
      Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(); 
      //Get the first worksheet in the workbook 
      Aspose.Cells.Worksheet worksheet = workbook.Worksheets[0]; 
      //Import data from GridView control to fill the worksheet 
      worksheet.Cells.ImportGridView(GridView1, 0, 0, new Aspose.Cells.ImportTableOptions() { IsFieldNameShown = true }); 
      worksheet.AutoFitColumns(); 
      //Send result to client in XLS format 
      workbook.Save(this.Response, "export.xls", ContentDisposition.Attachment, new Aspose.Cells.XlsSaveOptions());