ASP.NET, ADO.NET 및 Visual C# .NET을 사용하여 Excel 데이터 쿼리 및 표시

이 문서에서는 Visual C# .NET을 사용하여 ASP.NET(.aspx) 페이지를 통해 Excel 워크시트의 데이터를 쿼리하고 표시하는 방법을 보여 줍니다.

원래 제품 버전: ASP.NET
원래 KB 번호: 306572

샘플 Excel 워크시트 만들기

  1. Microsoft Excel을 시작한 다음, 새 워크시트를 만듭니다.

  2. 새 워크시트에 다음 정보를 추가하여 Excel 데이터베이스를 만듭니다.

    행 번호 A B
    1 FirstName LastName
    2 스콧 주교
    3 케이티 요르단

    참고

    이 예제에서 데이터는 셀 A1로 시작하지만 워크시트 내의 인접한 셀에 이 데이터를 추가할 수 있습니다.

  3. 데이터가 있는 행과 열을 강조 표시합니다.

  4. 삽입 메뉴에서 이름을 가리킨 다음 정의를 클릭합니다.

  5. 통합 문서의 이름 텍스트 상자에 myRange1을 입력하고 확인을 클릭합니다.

  6. 파일 메뉴에서 저장을 클릭합니다. 저장 내 목록에서 웹 서버 루트(일반적으로 C:\InetPub\Wwwroot\)를 선택합니다. 파일 이름 텍스트 상자에 ExcelData.xls입력합니다. 확인을 클릭합니다.

  7. 파일 메뉴에서 끝내기를 클릭합니다.

Visual C# .NET을 사용하여 ASP.NET 샘플 만들기

이 코드 샘플에서는 Excel 워크시트에서 정보를 쿼리하고 표시하는 방법을 보여 줍니다. 다음 코드는 이전 섹션에서 만든 워크시트를 사용합니다.

  1. Microsoft Visual Studio .NET을 엽니다. Visual Studio .NET IDE(통합 개발 환경)가 표시됩니다.

  2. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

  3. 새 프로젝트 대화 상자의 프로젝트 형식에서 Visual C# 프로젝트를 클릭합니다. 템플릿에서웹 애플리케이션 ASP.NET 클릭합니다.

  4. 새 프로젝트 대화 상자에서 이름위치 텍스트 상자를 찾습니다.

    참고

    • 이름 텍스트 상자를 사용할 수 없습니다(회색으로 표시되거나 흐리게 표시됨). 위치 텍스트 상자에는 텍스트(또는 이와 유사한)http://localhost/WebApplication1가 포함됩니다.
    • 위치 텍스트 상자의 텍스트를 로 바꾼 http://localhost/ExcelCSTest다음 확인을 클릭합니다. WebForm1.aspx 라는 웹 양식을 포함하는 새 프로젝트가 만들어집니다.
  5. Visual Studio .NET IDE에서 솔루션 탐색기 창을 찾습니다. 찾을 수 없는 경우 보기 메뉴에서 솔루션 탐색기 클릭합니다.

  6. 솔루션 탐색기WebForm1.aspx 마우스 오른쪽 단추로 클릭한 다음 보기 Designer 클릭하여 페이지의 모양에 대한 디자이너를 표시합니다. 디자이너를 사용하면 컨트롤을 추가하고 페이지의 모양을 조작할 수 있습니다.

  7. 도구 상자를 찾습니다. IDE 옵션 설정에 따라 도구 상자가 창 또는 단추(종종 IDE의 왼쪽에 표시됨)로 나타날 수 있습니다. 도구 상자를 찾을 수 없는 경우 보기 메뉴에서 도구 상자를 클릭합니다.

    도구 상자가 단추로 표시되는 경우 도구 상자의 내용이 표시되도록 단추 위로 포인터를 이동합니다.

  8. 웹 양식의 디자이너 보기가 활성화된 경우 도구 상자는 Web Forms, 구성 요소, HTML 및 기타 섹션을 비롯한 섹션으로 나뉩니다. Web Forms 섹션을 클릭합니다.

  9. 도구 상자의 Web Forms 섹션에서 DataGrid를 클릭한 다음 WebForm1용 디자이너로 끌어옵니다.

  10. WebForm1.aspx 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭하여 코드 숨김 페이지 원본을 표시합니다.

  11. 네임스페이스 섹션 위의 코드 숨김 페이지 맨 위에 다음 문을 추가합니다.

    using System.Data.OleDb;
    using System.Data;
    
  12. 다음 코드를 강조 표시하고 코드를 마우스 오른쪽 단추로 클릭한 다음 복사를 클릭합니다. WebForm1.aspx.cs 코드를 이벤트에 붙여넣습니다Page_Load.

    // Create connection string variable. Modify the "Data Source"
    // parameter as appropriate for your environment.
    String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
    "Extended Properties=Excel 8.0;";
    
    // Create connection object by using the preceding connection string.
    OleDbConnection objConn = new OleDbConnection(sConnectionString);
    
    // Open connection with the database.
    objConn.Open();
    
    // The code to follow uses a SQL SELECT command to display the data from the worksheet.
    // Create new OleDbCommand to return data from worksheet.
    OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM myRange1", objConn);
    
    // Create new OleDbDataAdapter that is used to build a DataSet
    // based on the preceding SQL SELECT statement.
    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
    
    // Pass the Select command to the adapter.
    objAdapter1.SelectCommand = objCmdSelect;
    
    // Create new DataSet to hold information from the worksheet.
    DataSet objDataset1 = new DataSet();
    
    // Fill the DataSet with the information from the worksheet.
    objAdapter1.Fill(objDataset1, "XLData");
    
    // Bind data to DataGrid control.
    DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
    DataGrid1.DataBind();
    
    // Clean up objects.
    objConn.Close();
    
  13. 파일 메뉴에서 모두 저장을 클릭하여 프로젝트 파일을 저장합니다.

  14. 빌드 메뉴에서 빌드를 클릭하여 프로젝트를 빌드합니다. 이 단계에서는 코드 숨김 페이지에서 코드를 실행할 수 있도록 준비합니다.

  15. 솔루션 탐색기 WebForm1.aspx 마우스 오른쪽 단추로 클릭한 다음 브라우저에서 보기를 클릭하여 코드를 실행합니다.

추가 코드 설명

이 문서의 코드 샘플에서는 Microsoft Jet OLE DB 공급자를 사용하여 Excel 워크시트에 액세스합니다. 이 코드는 다음 연결 문자열 사용하여 워크시트에 연결합니다.

// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
"Extended Properties=Excel 8.0;";

주석에서 알 수 있듯이 특정 Excel 워크시트에 대한 경로 정보를 수정해야 합니다. 또한 파일에 제대로 연결하려면 매개 변수 값을 Extended Properties 설정해야 합니다.

참고

연결 문자열 함수를 Server.MapPath 사용합니다. 이 함수는 iiS(Microsoft 인터넷 정보 서비스)를 기준으로 하는 경로를 파일에 가져와서 해당 파일에 대한 하드 디스크 경로를 반환합니다. 예를 들어 샘플 Excel 워크시트 만들기 섹션에서 일반적으로 에 있는 C:\Inetpub\Wwwroot웹 루트 디렉터리에 ExcelData.xls 만듭니다. 또한 Wwwroot 폴더 내에 ExcelCSTest라는 하위 폴더와 _ExcelCSTest_folder 내에 WebForm1.aspx 파일이 만들어집니다.

이 예제에서 하드 디스크의 파일 경로는 와 같습니다 C:\Inetpub\Wwwroot\ExcelCSTest. Wwwroot 에는 ExcelData.xls포함되며 ExcelCSTest 에는 WebForm1.aspx 포함되어 있습니다.

파일의 IIS 경로는 와 같습니다 C:\Web Root\ExcelCSTest. 웹 루트에는 ExcelData.xls, ExcelCSTest에는 WebForm1.aspx 포함되어 있습니다.

이 경우 WebForm1.aspx 페이지에서ExcelData.xls 파일로 의 상대 경로는 입니다 . /ExcelData.xls. 입니다 . / 문자는 IIS에 하나의 폴더 수준을 올라가도록 알릴 수 있습니다. 따라서 코드 Server.MapPath("../ExcelData.xls") 는 다음 문자열을 반환합니다.

C:\Inetpub\Wwwroot\ExcelData.xls

를 사용할 Server.MapPath필요가 없습니다. 특정 경로에 이 정보를 하드 코딩하거나 모든 메서드를 사용하여 하드 디스크에서 Excel 파일의 위치를 제공할 수도 있습니다.

참조

ADO.NET 사용하는 방법에 대한 자세한 내용은 Visual C# .NET을 사용하여 데이터베이스에서 DataSet 개체를 채우는 방법을 참조하세요.

참고

예제 회사, 조직, 제품, 도메인 이름, 전자 메일 주소, 로고, 사람, 장소 및 여기에 표시된 이벤트는 가상입니다. 실제 회사, organization, 제품, 도메인 이름, 이메일 주소, 로고, 사람, 장소 또는 이벤트와의 연관은 의도되거나 유추되어서는 안 됩니다.