이 문서에서는 Visual C# .NET을 사용하여 ASP.NET(.aspx) 페이지를 통해 Excel 워크시트의 데이터를 쿼리하고 표시하는 방법을 보여 줍니다.
원래 제품 버전: ASP.NET
원래 KB 번호: 306572
샘플 Excel 워크시트 만들기
Microsoft Excel을 시작한 다음 새 워크시트를 만듭니다.
새 워크시트에 다음 정보를 추가하여 Excel 데이터베이스를 만듭니다.
행 번호 A B 1 FirstName LastName 2 스콧 비숍 3 Katie 요르단 참고 항목
이 예제에서는 데이터가 A1 셀로 시작되지만 워크시트 내의 인접한 셀에 이 데이터를 추가할 수 있습니다.
데이터가 있는 행과 열을 강조 표시합니다.
삽입 메뉴에서 이름을 가리킨 다음 [정의]를 클릭합니다.
통합 문서의 이름 텍스트 상자에 myRange1을 입력한 다음 확인을 클릭합니다.
파일 메뉴에서 저장을 클릭합니다. 저장 목록에서 웹 서버 루트(일반적으로
C:\InetPub\Wwwroot\
)를 선택합니다. 파일 이름 텍스트 상자에 ExcelData.xls 입력합니다. 확인을 클릭합니다.파일 메뉴에서 끝내기를 클릭합니다.
Visual C# .NET을 사용하여 ASP.NET 샘플 만들기
이 코드 샘플에서는 Excel 워크시트에서 정보를 쿼리하고 표시하는 방법을 보여 줍니다. 다음 코드는 이전 섹션에서 만든 워크시트를 사용합니다.
Microsoft Visual Studio .NET을 엽니다. Visual Studio .NET IDE(통합 개발 환경)가 표시됩니다.
파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.
새 프로젝트 대화 상자의 프로젝트 형식 아래에서 Visual C# 프로젝트를 클릭합니다. 템플릿에서 ASP.NET 웹 애플리케이션을 클릭합니다.
새 프로젝트 대화 상자에서 이름 및 위치 텍스트 상자를 찾습니다.
참고 항목
- 이름 텍스트 상자를 사용할 수 없습니다(회색으로 표시되거나 흐리게 표시됨). 위치 텍스트 상자에는 텍스트(또는 이와 유사한)
http://localhost/WebApplication1
가 포함됩니다. - 위치 텍스트 상자의 텍스트를 로 바꾼
http://localhost/ExcelCSTest
다음 확인을 클릭합니다. WebForm1.aspx 웹 양식을 포함하는 새 프로젝트가 만들어집니다.
- 이름 텍스트 상자를 사용할 수 없습니다(회색으로 표시되거나 흐리게 표시됨). 위치 텍스트 상자에는 텍스트(또는 이와 유사한)
Visual Studio .NET IDE에서 솔루션 탐색기 창을 찾습니다. 찾을 수 없는 경우 보기 메뉴에서 솔루션 탐색기 클릭합니다.
솔루션 탐색기 WebForm1.aspx 마우스 오른쪽 단추로 클릭한 다음 뷰 디자이너를 클릭하여 페이지 모양에 대한 디자이너를 표시합니다. 디자이너를 사용하면 컨트롤을 추가하고 페이지의 모양을 조작할 수 있습니다.
도구 상자를 찾습니다. IDE 옵션 설정에 따라 도구 상자가 창 또는 단추(IDE의 왼쪽에 자주 표시됨)로 나타날 수 있습니다. 도구 상자를 찾을 수 없는 경우 보기 메뉴에서 도구 상자를 클릭합니다.
도구 상자가 단추로 표시되는 경우 도구 상자의 내용이 표시되도록 단추 위로 포인터를 이동합니다.
웹 양식의 디자이너 보기가 활성화된 경우 도구 상자는 Web Forms, 구성 요소, HTML 및 기타 섹션을 비롯한 섹션으로 나뉩니다. Web Forms 섹션을 클릭합니다.
도구 상자의 Web Forms 섹션에서 DataGrid를 클릭한 다음 WebForm1 디자이너로 끕니다.
WebForm1.aspx 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭하여 코드 숨김 페이지 원본을 표시합니다.
네임스페이스 섹션 위의 코드 숨김 페이지 맨 위에 다음 문을 추가합니다.
using System.Data.OleDb; using System.Data;
다음 코드를 강조 표시하고 코드를 마우스 오른쪽 단추로 클릭한 다음 복사를 클릭합니다. 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();
[파일] 메뉴에서 [모두 저장]을 클릭하여 프로젝트 파일을 저장합니다.
빌드 메뉴에서 빌드를 클릭하여 프로젝트를 빌드합니다. 이 단계에서는 코드를 실행할 수 있도록 코드 숨김 페이지의 코드를 준비합니다.
솔루션 탐색기 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 개체를 채우는 방법을 참조 하세요.
참고 항목
이 문서에 사용된 예제 회사, 조직, 제품, 도메인 이름, 전자 메일 주소, 로고, 사람, 장소 및 이벤트는 실제 데이터가 아닙니다. 어떠한 실제 회사, 기관, 제품, 도메인 이름, 전자 메일 주소, 로고, 사람, 장소 또는 이벤트와도 연관시킬 의도가 없으며 그렇게 유추해서도 안 됩니다.