C#을 사용하여 Excel 파일을 읽고 특정 셀의 데이터를 추출하는 것은 데이터 처리와 분석에 있어 매우 중요한 기능입니다. 본 포스트에서는 C# Windows Forms 애플리케이션을 통해 Excel 파일을 읽고, 사용자가 지정한 셀의 값을 출력하는 방법을 소개하겠습니다. 이 과정을 통해 개발자들은 Excel 데이터를 더욱 효과적으로 활용할 수 있게 됩니다.
1. NuGet 패키지 설치
프로젝트를 시작하기 전에, Microsoft.Office.Interop.Excel 라이브러리를 설치해야 합니다. 이 라이브러리는 Excel 파일과 상호작용하는 데 필요합니다.
Visual Studio에서 프로젝트를 우클릭하고 'NuGet 패키지 관리'를 선택한 다음, '찾아보기' 탭에서 해당 패키지를 검색하여 설치합니다.
2. ExcelReader 클래스 생성
다음은 Excel 파일을 읽기 위한 ExcelReader 클래스의 구현입니다.
using System;
using Microsoft.Office.Interop.Excel;
namespace ExcelReader
{
class ExcelReader
{
private Application excel;
private Workbook workbook;
private Worksheet worksheet;
public ExcelReader(string filePath)
{
excel = new Application();
workbook = excel.Workbooks.Open(filePath);
worksheet = workbook.Worksheets[1];
}
public string GetCellValue(int row, int column)
{
Range range = worksheet.Cells[row, column];
if (range.Value != null)
{
return range.Value.ToString();
}
else
{
return "";
}
}
public void Close()
{
workbook.Close();
excel.Quit();
}
}
}
이 클래스는 Excel 파일을 열고, 지정된 셀의 값을 반환하는 기능을 제공합니다.
GetCellValue 함수는 행과 열 번호를 인자로 받아 해당 셀의 값을 반환합니다.
여기서 눈여겨 봐야 할건 workbook.Worksheets[1]; 입니다. 바로 첫번째 시트를 읽어오겠다는 것!
시트가 만약 여러개라면 배열의 값을 변경해주면 됩니다.
3. Windows Forms 애플리케이션 구현
Windows Forms 애플리케이션에는 파일을 선택하는 OpenFileDialog, 셀의 값을 표시할 TextBox, 그리고 파일을 열고 셀 값을 읽는 Button을 포함합니다.
버튼의 클릭 이벤트 핸들러에서는 ExcelReader 클래스를 사용하여 선택된 파일의 특정 셀 값을 읽고 출력합니다.
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel files (*.xlsx)|*.xlsx";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog.FileName;
ExcelReader excelReader = new ExcelReader(openFileDialog.FileName);
int col = 1; // 열
int row = 1; // 행
string cellValue = excelReader.GetCellValue(row, col);
textBox2.Text = col.ToString();
textBox3.Text = row.ToString();
textBox4.Text = cellValue;
excelReader.Close();
}
}
간단하게 엑셀 파일을 만들어 주었습니다.
이 엑셀 파일을 읽을 수 있도록 윈폼도 만들어주었습니다.
파일을 로드 할 수 있는 버튼도 만들고, 각각의 값을 출력해줄 TextBox 도 만들어주었습니다.
그리고 버튼을 클릭하면 파일을 읽을 수 있도록 버튼 이벤트에 소스를 추가해 주었습니다.
오픈다이얼로그는 아래의 링크를 참고하시면 됩니다.
결론
C#과 Microsoft.Office.Interop.Excel 라이브러리를 사용하여 Excel 파일에서 데이터를 읽고 처리하는 것은 비교적 간단합니다. 이 기술을 활용하면 엑셀 데이터를 다양한 방식으로 가공하고, 효율적인 데이터 관리 및 분석이 가능해집니다. 다음 포스트에서는 읽어온 데이터를 DataGridView에 표시하는 방법을 다룰 예정입니다.
함께보면 좋은글
'Language > C# WPF' 카테고리의 다른 글
[C#] 문자열에서 원하는 위치의 글자만 가져오기 (0) | 2023.08.28 |
---|---|
[C#] Excel 엑셀파일 읽어서 DataGridView 출력하기 EPPlus (0) | 2023.04.06 |
[WPF] Microsoft.Ink로 필기인식(숫자인식 Handwriting digit recognition) 해보기 (0) | 2021.05.12 |
[C#] 디버깅 관리자권한(debug administrator) / click once error (0) | 2019.11.05 |
[WPF] shape 이미지 관련 - Ellipse, Rectangle background image(BitmapImage to ImageBrush) (0) | 2019.08.26 |