본문 바로가기
IT 개발일지

C# OleDb를 이용하여 엑셀파일 불러와서 내용 출력

by (주)삼우기공 2022. 12. 30.
반응형

1. 목표

 테이블형태의 원하는 엑셀파일의 내용을 데이터그리드에 출력할수 있습니다.

 

2. 환경

OpenFileDialog 및 OleDb를 이용하여 엑셀파일 내용을 읽고 출력 합니다.

 

3. 코드

 - OleDb 연결 및 조회

DBClass명으로 Class안에 작성한 내용입니다.

using System.Data.OleDb;

public void Conn()
{
    /*string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source ="
                            + this.filePath + this.fileName + "; Extended Properties = 'Excel 12.0 Xml; HDR=YES; IMEX=1;'";
    */
    string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source ="
                            + this.server + this.db + "; Extended Properties = Excel 12.0;";
    this.oleCon = new OleDbConnection(ConnectionString);
    oleCon.Open();
    //transaction = oleCon.BeginTransaction();
}

// 쿼리문 실행 데이터테이블 자료형으로 반환
public DataTable Read(string query)
{
    try
    {
        Conn();

        string qry = query;
        OleDbDataAdapter oleOda = new OleDbDataAdapter(qry, oleCon);

        DataTable exDataTable = new DataTable();
        oleOda.Fill(exDataTable);
        oleCon.Close();

        return exDataTable;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        return null;
    }
}

 

 - OpenFileDialog를 이용하여 선택 파일명 및 파일경로 가져옵니다.

// 파일 찾아보기 - OpenFileDialog 이용
private void metroButton1_Click(object sender, EventArgs e)
{
    string fileName, fileFullName, filePath ="";

    OpenFileDialog ofd = new OpenFileDialog();
    if (ofd.ShowDialog() == DialogResult.OK)
    {
        //File명과 확장자
        fileName = ofd.SafeFileName;
        //File경로와 File명
        fileFullName = ofd.FileName;
        //File경로
        filePath = fileFullName.Replace(fileName, "");

        metroTextBox1.Clear();
        metroTextBox1.Text = fileFullName;

        data_read(filePath, fileName);
    }
}

 

 - 객체를 생성하고 쿼리문에 맞는 데이터테이블을 반환받아 그리드에 뿌려줍니다.

 

 

 

private void data_read(string filePath, string fileName)
{
    DBClass db = new DBClass(filePath, fileName);

    string qry = "SELECT * FROM [발주접수목록Excel$]";  // 테이블명에는 $ 붙어야함.. 이유모름
    metroGrid1.DataSource = db.Read(qry);
}

 

4. 결과물

EXCEL DATA 읽어온 결과물

 해당 결과물을 이용하여  mysql을 이용하여  db에 등록하거나 가공하여 사용 할수 있습니다.

 

mysql 사용하기

https://samwootc.tistory.com/116

 

C# MYSQL HOW TO SELECT UPDATE DELETE 쿼리하기

MYSQL 연결하기 C# HOW TO CONNECT MYSQL DATABASE 연결하기 1. 참조 추가하기 도구-> nuget패키지관리자->솔루션용 nuget패키지 관리자에서 Mysql을 검색합니다. Mysql.Data를 선택한 후 프로젝트에 적용합니다. 적

samwootc.tistory.com

 

 

비슷한내용으로 엑셀을 디비처럼 사용 가능 합니다.

https://samwootc.tistory.com/89

 

C# WindowsForm 프로젝트 엑셀을 Database로 연결 및 Data 읽기

별다른 DBMS를 사용하지 않고, 엑셀파일을 데이터저장소로 사용하는 코드 발주 / 입고 / 출고 데이터 관리 활용할 것임.. /* // 확장명 XLS (Excel 97~2003 용) private const string ConnectStrFrm_Excel97_2003 = "Provide

samwootc.tistory.com

 

반응형

댓글