Erstellen von excel-Datei und laden Sie es, ohne es zu speichern in den server, ist es möglich?

ich es geschafft haben, erstellen Sie eine excel-Datei mit interop, und jetzt möchte ich, dass excel Datei heruntergeladen werden
im web-browser statt des speichern im in-Laufwerk.

     var xlApp = new Excel.Application();
     Excel.Workbook xlWorkBook = xlApp.Workbooks.Add();
     Excel.Worksheet xlWorkSheet = xlWorkBook.Sheets[1];
     Excel.Range chartRange;

      var attendance_list = CTX.schedules.Where(s => s.event_id == Convert.ToInt32(param));
      if (attendance_list.Count() > 0)
      {
             xlWorkSheet.Cells[1, 1] = "PIC : ";
             xlWorkSheet.Cells[2, 1] = "Tempat : ";

             xlWorkSheet.Cells[1, 2] = attendance_list.FirstOrDefault().calendar_event.PIC;
             xlWorkSheet.Cells[2, 2] = attendance_list.FirstOrDefault().calendar_event.sched_loc;

             xlWorkSheet.Shapes.AddPicture(@Server.MapPath("~/Images/" + "oto_group2.png"), MsoTriState.msoFalse, MsoTriState.msoCTrue, 50, 50, 100, 45);

             xlWorkSheet.Shapes.AddPicture(@Server.MapPath("~/Images/" + "oto_group3.png"), MsoTriState.msoFalse, MsoTriState.msoCTrue, 280, 50, 100, 45);

             int row = 10;
             int idx = 0;

             xlWorkSheet.Cells[9, 1] = "No";
             xlWorkSheet.Cells[9, 2] = "Name";
             xlWorkSheet.Cells[9, 3] = "Phone";
             xlWorkSheet.Cells[9, 4] = "Time";
             xlWorkSheet.Cells[9, 5] = "Branch";
             xlWorkSheet.Cells[9, 6] = "Sign";
             xlWorkSheet.Cells[9, 7] = "Note";

             chartRange = (xlWorkSheet.get_Range("b9"));
             chartRange.ColumnWidth = 40;

             chartRange = (xlWorkSheet.get_Range("c9"));
             chartRange.ColumnWidth = 20;

             chartRange = (xlWorkSheet.get_Range("g9"));
             chartRange.ColumnWidth = 20;

             var key = CTX.translate_value_ms.Where(t => t.PSF_type == "HRS_PHONE_TYPE"
                                                                     && t.value == "CELL").FirstOrDefault().translate_value_id;

             foreach (var item in attendance_list)
              {
                 idx++;

                  var hp = item.user_list.user_phones.Where(p => p.phone_type_id == key).FirstOrDefault();

                  xlWorkSheet.Cells[row, 1] = idx;
                  xlWorkSheet.Cells[row, 2] = displayFullName(item.user_list.fname, item.user_list.mname, item.user_list.lname);
                  xlWorkSheet.Cells[row, 3] = hp.phone_number;
                  xlWorkSheet.Cells[row, 4] = item.calendar_event.time_range;
                  xlWorkSheet.Cells[row, 5] = item.calendar_event.branch;
                  xlWorkSheet.Cells[row, 6] = "";
                  xlWorkSheet.Cells[row, 7] = "";

                     row++;
             }

             chartRange = xlWorkSheet.get_Range("a9", "g9");
             chartRange.Font.Bold = true;
             chartRange.Interior.Color = System.Drawing.Color.Gray;

             chartRange = xlWorkSheet.get_Range("a9",  "g" + (row - 1));
             chartRange.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, Excel.XlColorIndex.xlColorIndexAutomatic);

             xlWorkBook.SaveAs("csharp.net-informations.xls", Excel.XlFileFormat.xlWorkbookNormal);

             xlWorkBook.Close(true);
             xlApp.Quit();

             Marshal.ReleaseComObject(xlApp);
     }

dies ist, was ich bisher versucht habe zu erstellen, die excel-Datei. müssen einige englightment. "dieser code speichern von excel-Datei zu fahren, das ist nicht das Ergebnis, das ich erreichen will."

dies ist meine generierten excel : Erstellen von excel-Datei und laden Sie es, ohne es zu speichern in den server, ist es möglich?

InformationsquelleAutor NomNomNom | 2014-10-27
Schreibe einen Kommentar