이 ASP.Net 웹 응용 프로그램을 가지고 있으며 내 페이지 중 하나에서 JQuery JQGrid를 사용하고 있습니다. JQGrid를 Excel 시트로 내보낼 수 있기를 원하므로 JavaScript를 사용하여 수집했습니다.ASP.NET 웹 서비스에서 Excel 내보내기
[WebMethod]
public void GetData(object[] Values)
{
DT_ToFill.Columns.Add("CaseID");
DT_ToFill.Columns.Add("SR");
foreach (object Value in Values)
{
Dictionary<string, object> DictVals = new Dictionary<string, object>();
DictVals = (Dictionary<string, object>)Value;
string CaseID = DictVals["CaseID"].ToString();
string SR = DictVals["SR"].ToString();
object[] Obj = new object[2] { CaseID, SR };
DT_ToFill.Rows.Add(Obj);
}
ExportToExcel(DT_ToFill, Context.Response);
}
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
public void ExportToExcel(DataTable dt, HttpResponse Response)
{
GridView GridView1 = new GridView();
GridView1.DataSource = dt;
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "inline;filename=Schedule_ExcelSheet.xls");
Response.Charset = "";
Response.ContentType = "application/ms-excel";
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.UTF8;
StringWriter sw = new StringWriter();
HtmlTextWriter ht = new HtmlTextWriter(sw);
GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(ht);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
public void VerifyRenderingInServerForm(Control control)
{
}
: 다음 배열과 값은, 내가 성공적으로 어떤 파일 다운로드가 나타나지 WebService에에 수출을 제외하고, 모든 일을,이 내 WebService에 코드 데이터 그리드의 값을 채우기 위해 WebService를 호출 도와주세요 ... 감사합니다.
예, 맞습니다. @ 포레스트,하지만 두 번째 부분을 이해할 수 없었습니다. 어떻게해야합니까?! – YMELS
안녕하세요. 죄송합니다. 명확히하려고 노력하겠습니다. – jForrest
새 창을 열거 나 iframe을 페이지에 추가하면 파일 다운로드가 작동합니다. 가장 쉬운 방법은 새로운 창입니다. 그래서 : 1) 서버에 데이터를 보내기 위해 지금하고있는 일을하십시오. 2) 새 창을여십시오. 당신이 지금하고있는 것처럼 어쩌면 xls을 보낼 URL을 가리 키십시오 (어쩌면 사용자 세션을 사용하여 올바른 pdf를 보냅니다). 3) 새 창이로드되면 xls을 다운로드합니다 – jForrest