1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
OleDbConnection excelConnection = null;
OleDbCommand dbCommand = null;
OleDbDataAdapter dataAdapter = null;
try
{
    OleDbConnectionStringBuilder ConnectionBuilder = new OleDbConnectionStringBuilder();
    //사용 PC에서 Microsoft.ACE.OLEDB,12.0 Provider가 별도로 설치되어 있어야 함                
    //다운로드 사이트 URL
    //https://www.microsoft.com/ko-KR/download/details.aspx?id=13255
    //32bit로 다운받고 cmd에서 AccessDatabaseEngine.exe 경로로 이동 후
    //AccessDatabaseEngine.exe /passive 입력하여 수동 설치                     
    ConnectionBuilder.Provider = "Microsoft.ACE.OLEDB.12.0";
    ConnectionBuilder.DataSource = _ExcelFilePath;
    ConnectionBuilder.Add("Extended Properties""Excel 8.0");
 
    excelConnection = new OleDbConnection(ConnectionBuilder.ToString());
 
    excelConnection.Open();
 
    string strSQL = @"SELECT * FROM [Sheet1$] WHERE [코드] <> ''";
    dbCommand = new OleDbCommand(strSQL, excelConnection);
    dataAdapter = new OleDbDataAdapter(dbCommand);
    DataTable dTable = new DataTable(); //새로 추가된 부분
    dataAdapter.Fill(dTable);
 
    grid1.DataSource = dTable;
    grid1.DataBinds();
    grid1.DoReadOnly(true);
 
}
catch (OleDbException ex)
{
    MessageBox.Show(ex.Message);
}
finally
{
    //dispose used object
    //dTable.Dispose();
    dataAdapter.Dispose();
    dbCommand.Dispose();
    excelConnection.Close();
    excelConnection.Dispose();
}
cs


사용자들이 cmd창에서 커맨드 입력하는게 힘들면 아래 명령어로 .bat파일 생성 후 사용하도록

(보통 배포 시 해당 업체 파일서버에 AccessDatabaseEngine.exe (32비트) 파일을 넣어놓고

각자 클라이언트 PC에서 마운트하여 사용하도록 배치파일 배포 함)



@echo off

echo "AccessDatabaseEngine 설치를 시작합니다. 잠시만 기다려주세요.."

echo "파일 서버에 연결 중 입니다..."

::해당 경로 마운트

pushd \\파일서버경로\설치파일이존재하는폴더명


echo "설치 창이 나타나면 설치를 진행해주세요."

::마운트 한 폴더에 있는 파일 수동 설치 (32비트이기 때문에 수동 설치)

AccessDatabaseEngine.exe /passive

::마운트 해제

popd


echo "complete."

echo "설치가 완료되었습니다. 이 창을 종료해주세요."

cmd /k