2008-10-31 3 views
2

내 사용자는 Excel에서 내 응용 프로그램의 데이터를 원합니다. 데이터는 SQL Server 데이터베이스에 있지만 사용자가 데이터베이스에 직접 액세스하는 것을 원하지 않습니다. 대신 데이터를 가져 오기 위해 웹 서비스를 제공합니다. SQL Server에서 웹 서비스를 통해 Excel로 데이터를 이동하는 가장 좋은 방법은 무엇입니까?웹 서비스를 통해 SQL Server에서 Excel로 데이터 이동

+0

+1 좋은 질문, 다양한 답변. –

답변

3

똑바로 asp.net 페이지로 할 수 있으며 .csv 파일을 반환 할 수 있습니다. mimetype을 text/csv로 변경하면 기본적으로 Excel에서 열어야합니다. 이것은 가장 쉬운 방법 일 것이고, 내가 과거에 큰 성공을 거두었 다.

당신은 또한 .XLS 파일 이름과 그 위에 테이블과 HTML 페이지를 다시 날려 버릴 수
1

, 엑셀이뿐만 아니라

+0

+1 잘 작동하는 입증 된 기술입니다. –

3

을 여는 방법을 알고있는 데이터 테이블에서 엑셀 파일을 생성합니다 다음 코드, 당신은 할 수

public static void CreateExcelFromDataTable(string filename, DataTable dt) { 

     DataGrid grid = new DataGrid(); 
     grid.HeaderStyle.Font.Bold = true; 
     grid.DataSource = dt; 
     grid.DataMember = dt.TableName; 

     grid.DataBind(); 

     // render the DataGrid control to a file 

     using (StreamWriter sw = new StreamWriter(filename)) { 
      using (HtmlTextWriter hw = new HtmlTextWriter(sw)) { 
       grid.RenderControl(hw); 
      } 
     } 
    } 
+1

방금 ​​솔루션을 테스트했는데 Excel을 열 때 경고를주는 것을 제외하고는 훌륭하게 작동합니다. 전반적으로 좋은 아이디어입니다. 나는 새로운 것을 배웠다 :). 감사. – Abbas

+0

+1 나는이 아이디어가 마음에 들며 미리보기가 필요한 경우 유용 할 수 있습니다. –

1

웹 서비스를 사용자에게이 스트림은 세포가 캐리지 리턴/줄 바꿈에 의한 탭 문자 행에 의해 구분되는 문자열 버퍼를 방출한다. 그런 다음이 결과를 Excel 웹 쿼리로 Excel로 파이프합니다. 싸고, 빠르고, 조금 더럽지 만 간단한 프로세스에 좋습니다.

+0

실제로 나쁜 생각은 아닙니다. 형식이 지정되지 않은 데이터를 간단하게 출력 할 수 있습니다. –

0

Excel 웹 쿼리 (데이터/가져 오기 외부) 또한 Excel의 데이터를 웹 사이트에 게시 할 수있는 방법이 있습니다. 적어도 MS Sharepoint에서 작동 중

관련 문제