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;
}
}
엑셀 파일 내 지정한 시트의 모든 데이터를 불러와서 데이터테이블에 값을 저장하는 기능
시트 명칭이 고정된 값이 아닐 땐 전체 시트를 먼저 조회한 후 조회할 시트의 명칭을 찾아서 입력해야한다
'CheckMate RPA' 카테고리의 다른 글
| CheckMate RPA C# 정규표현식 (3) IP 형식 파악하기 (0) | 2023.04.12 |
|---|---|
| CheckMate RPA C# 정규표현식 (2) HTML 형식 파악하기 (0) | 2023.04.12 |
| CheckMate RPA C# 정규표현식 (1) 핸드폰 번호 형식 파악하기 (0) | 2023.04.12 |
| CheckMate RPA C# PDF to Excel 변환하기 (SautinSoft.PdfFocus.dll) (0) | 2023.04.12 |
| CheckMate RPA C# Excel Script (0) | 2023.04.12 |