CheckMate RPA

CheckMate RPA C# OLEDB를 이용하여 엑셀 파일 불러오기

밥탄이 2026. 3. 24. 13:03
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Text;

// Oledb 사용
using System.Data.Oledb;

public partial class CustomScript
{
	public void Execute_Code()
    {
    	// 데이터를 저장할 테이블
		DataTable Temp = new DataTable();
   		string refFile = @"D:\RPA\조회할파일.xlsx";
	
    	Temp = Get_File(refFile).Copy();
    }
	
	public DataTable Get_File(string FilePath)
    {
    	// 값을 저장할 임시 테이블 생성
    	DataTable subTemp = new DataTable();
        
    	// oledb를 사용하기 위해 커넥션 값 미리 선언
    	string oledb_Connecting = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\"{0}\";Extended Properties=\"Excel 12.0 xml;HDR=NO;IMEX=1\";", FilePath);
        
        // oledb connection 과 adapter 선언
        OledbConnection Oledb_Connection = null;
        OledbDataAdapter Oledb_Adapter = null;
        
        try
        {
        	// 커넥션 값을 이용해 Oledb 연결
            Oledb_Connection = new OledbConnection(oledb_Connecting);
            Oledb_Connection.Open(); // 여기서 오류가 발생할 경우 파일 경로 및 DRM 확인
            
            // 파일 내 값을 받아올 시트를 지정하여 Adapter 연결
            // "대상" 이라는 시트명 작성
            Oledb_Adapter = new OleDbDataAdapter("SELECT * FROM [대상$]", Oledb_Connection);
            
            // 엑셀 파일 내 모든 데이터를 subTemp 테이블에 저장
            Oledb_Adapter.Fill(subTemp);
            
            // 해당 테이블은 컬럼이 선언되어있지 않음으로 데이터에 따라 조절하는 기능 필요
            // ex) 첫번째 row를 컬럼으로 바꾸고 row를 삭제함
            
        }catch(Exception e)
        {
        	PrintLog(e.ToString());
        }finally
        {
        	// 연결 종료
            Oledb_Adapter.Dispose();
            Oledb_Connection.Close();
            Oledb_Connection.Dispose();
        }
        return subTemp;
    }
}

 

 

엑셀 파일 내 지정한 시트의 모든 데이터를 불러와서 데이터테이블에 값을 저장하는 기능

시트 명칭이 고정된 값이 아닐 땐 전체 시트를 먼저 조회한 후 조회할 시트의 명칭을 찾아서 입력해야한다