2011-09-08 5 views
0

테이블을 Excel 파일 형식으로 내보내는 데 큰 문제가 있습니다.asp.net - 테이블 내보내기

먼저 서버에서 실행되며 Excel로 데이터를 내보낼 수있는 코드를 만들었습니다. 사실 내 테이블이 데이터베이스에서 동적으로 생성 되었기 때문에 그 단계의 테이블 내에 아무 것도 없기 때문에 아무 데이터도 내보낼 수 없었습니다.

내 두 번째 접근 방식은 자바 스크립트 또는 "DataTables"(www.datatables.net)이라는 매우 멋진 jQuery 플러그인을 사용하여 클라이언트 측의 최종 컴파일 테이블을 대상으로했습니다. 두 시도 모두 실패했습니다. Javascript가 복잡하고, Firefox에서 실행하는 데 어려움이있는 것 같습니다. 반면에 플러그인은 제공 할 수없는 두려운 특정 테이블 구조가 필요합니다.

그래서 새로운 아이디어는 다음과 같습니다. 컴파일하고 서버에 빌드 한 직후 브라우저로 보내기 전에. 테이블을 대상으로하고 서버의 기능을 사용하여 데이터를 제공하십시오. 마지막으로 Excel로 데이터를 내보내고 페이지를 브라우저로 보냅니다. 지금. 가능한가? 그렇다면 어떻게?

저는 프로그래밍 세계에서 초보자이므로 모든 건설적인 제안과 비판을 높이 평가할 것입니다. 어떤 어려운 코드 예제도 신경 쓰지 않을 것입니다.)

답변

0

쿼리 결과를 .CSV 파일로 내보내십시오. CSV 파일은 엑셀에서도 전혀 열리지 않습니다. http://wiki.asp.net/page.aspx/401/export-to-csv-file/ .CSV 형식으로 내보내는 방법을 보여줍니다.

+0

답변 해 주셔서 감사합니다. 주제를 연구하겠습니다. 불행히도 내 테이블은 서로간에 두 개의 루프를 사용하여 빌드되고 그 위에 각 셀에 대한 값을 확인하는 쿼리가 있습니다. 꽤 복잡한 절차이므로이 접근법은 상당히 어려울 수 있습니다. 다시 한 번 도움을 주셔서 감사합니다 – Bartosz

0

여기에 대한 답변 대신 제안 사항이 많습니다. 더 일반적인 파일 형식을 만들기 위해 jQuery 플러그인 (table2csv)을 사용하는 것이 좋습니다. 그러나 this 프로젝트와 같은 실제 Excel 형식을 타겟팅하는 방법이 있습니다.

+0

이 table2csv 매우 유망 보인다! 바라기를 바란다. 내가 성공하면 쓸거야. 건배. Bartosz – Bartosz

+0

코드가 잘 작동하지만 프로세스가 끝날 때 필요한 파일이 있습니다. .csv 확장명으로 파일을 저장할 수 있도록 코드를 수정할 수있는 기회가 있습니까 ?? 문안 인사. Bartosz – Bartosz

+0

사실 내 코드는 아니지만, 내가 그걸 믿을 수 있었으면 좋겠어. 옵션 3.1을 시도하고 있습니까? 해당 방법으로 시도하면 .csv로 저장하려고 시도합니다. –

1

당신이 같은 일을 시도 할 수 있습니다 : 당신은 그냥 Excel에서, 그 수 타사 도구가 "개방"실제 XLS 또는 대신 CSV의 XLSX 또는 무언가에 내보내려면

protected void btnExport_Click(object sender, EventArgs e) 
{  
    Response.Clear(); 
    Response.Buffer = true; 
    Response.ContentType = "application/vnd.ms-excel"; 
    Response.Charset = ""; 

    System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); 

    //if you're exporting a table put the table in a placeholder and render 
    //the placeholder to the text writer here 
    grdJobs.RenderControl(oHtmlTextWriter); 

    Response.Write(oStringWriter.ToString()); 
    Response.End(); 
} 
관련 문제