프로그램/유니티 스크립트 소스

[유니티 스크립트 소스] Excel

코더 제로 2021. 2. 2. 04:15
728x90
반응형

1. 네임스페이스

네임스페이스
using System.Data;
using System.Data.Odbc;

 

2. 소스

using UnityEngine;
using System.Data;
using System.Data.Odbc;

public class Excel : MonoBehaviour
{
    public string m_FilePath = @"D:/Test.xlsx";

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.R))
        {
            DataTable dataTable = Read(m_FilePath);

            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                for (int j = 0; j < dataTable.Columns.Count; j++)
                {
                    string columnName = dataTable.Columns[j].ColumnName;
                    string columnValue = dataTable.Rows[i][j].ToString();

                    Debug.Log($"컬럼명 : {columnName} 컬럼값 : {columnValue}");
                }
            }
        }
    }

    DataTable Read(string filePath)
    {
        string connectionString
            = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; Dbq=" + filePath + ";";

        string cmdText = "SELECT * FROM [Sheet1$]";
        OdbcConnection connection = new OdbcConnection(connectionString);
        OdbcCommand odbcCommand = new OdbcCommand(cmdText, connection);

        DataTable DataTable = new DataTable("YourData");
        connection.Open();
        OdbcDataReader reader = odbcCommand.ExecuteReader();
        DataTable.Load(reader);
        reader.Close();
        connection.Close();

        return DataTable;
    }
}

 

3. 에러

 

윈도우10 64bit에서 32bit ODBC를 사용하면,

OdbcException: ERROR [IM002] [Microsoft][ODBC 드라이버 관리자] 데이터 원본 이름이 없고 기본 드라이버를 지정하지 않았습니다. 라는 에러가 발생함.

 

해결방법 : www.microsoft.com/ko-KR/download/details.aspx?id=13255 사이트에서 64bit용 재배포 패키지를 다운받아서 설치 하면 됨.

 

 

728x90
반응형