1. Geben Sie den Typ Button zur Client-Seite und klicken Sie auf diese Schaltfläche, rufen Sie die Javascript-Methode.wie Excel-Datei für Client-Maschine herunterladen?
<input type="button" id="btnImportExcel" name="btnImportExcel" value="Export to Excel" class="btn btn-default" onclick="Export_Excel();" style="width: 10%" />
Diese Javascript-Methode ruft die folgenden Parameter Wert und geht auf den Code hinter Web-Methode.
function Export_Excel() { debugger; var Showdata = {}; Showdata.startdate = $("[id*=txtbegindate]").val(); Showdata.enddate = $("[id*=txtenddate]").val(); if ($('input[id*=RadioButton1]').is(":checked")) { Showdata.radio = 1; } else if ($('input[id*=RadioButton2]').is(":checked")) { Showdata.radio = 2; } $('#divProgress').show(); $.ajax({ type: "POST", url: "Agent_HomePage.aspx/efgh", data: '{xyz: ' + JSON.stringify(Showdata) + '}', contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { alert(response.d); }, error: function (response) { alert("Error"); } }); $('#divProgress').hide(); $('div#OuterShowImageEdu').on('dialogclose', function (event) { alert('closed'); }); }
wir erstellen eine Web-Methode und unter Verwendung der Klassenobjekt alle Parameter-Werte abrufen und den WCF-Dienst aufrufen und Parameter Wert übergeben.
[WebMethod] [ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)] public static string efgh(Showdata xyz) { string result = ""; DataTable dt; DataSet ds = new DataSet(); string filename = string.Empty; try { string Sdate = string.Format("{0:dd-MMM-yyyy}", xyz.startdate); string Edate = string.Format("{0:dd-MMM-yyyy}", xyz.enddate); List<object> listfinal = new List<object>(); HelloServiceClient client = new HelloServiceClient(); string date = DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss"); var path = Environment.GetFolderPath(Environment.SpecialFolder.CommonDesktopDirectory); if (xyz.radio == "1") { dt = client.OracleConert_Excel(Convert.ToDateTime(Sdate), Convert.ToDateTime(Edate), dec_cod, 1); filename = path + "\\Carrier_House_Manifest" + "_" + date + ".xls"; ExporttoExcel(dt, filename); } else { } } catch (Exception ex) { result = ex.Message; } return result; }
Nach WCF-Dienste erfolgreich durchführen und das Ergebnis zurück, dann führen konvertieren Datei zu übertreffen.
private static void ExporttoExcel(DataTable dt, string fileName) { int i = 0; int j = 0; string data = null; Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = Missing.Value; xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); for (int i1 = 0; i1 < dt.Columns.Count; i1++) { xlWorkSheet.Cells[1, i1 + 1] = dt.Columns[i1].ColumnName; xlWorkSheet.get_Range("A1", "AA1").Font.Bold = true; xlWorkSheet.get_Range("A1", "AA1").ColumnWidth = "22"; xlWorkSheet.get_Range("A1", "AA1").Borders.Weight = 4d; //xlWorkSheet.get_Range("A1", "AA1").Interior.Color = Excel.XlRgbColor.rgbLightSteelBlue; } for (i = 0; i <= dt.Rows.Count - 1; i++) { int s = i + 1; for (j = 0; j <= dt.Columns.Count - 1; j++) { data = dt.Rows[i].ItemArray[j].ToString(); xlWorkSheet.Cells[s + 1, j + 1] = data; } } xlWorkBook.SaveAs(fileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); }
Ausgabe:
I Problemdatei einen Client machine.I downloaden bin immer versuchen Download im Client-Rechner, aber Datei herunterladen auf der server.Also, der gleichen Code ist ordnungsgemäßes Funktionieren in meiner lokalen Umgebung einzureichen.
können Sie mir die Lösung in asp.net im Code-Projekt geben, weil ich keine zusätzliche JS-Datei in meiner Lösung verwenden möchte? –