✔ Unity, C# 엑셀파일 읽어오기 (CSV 형태 아님)
유니티에서 엑셀 파일(.xlsx) 읽어보자!!
안녕하세요.
이번 포스트는 엑셀파일을 읽어오는 방법입니다.
Unity에서 CSV 파일로 읽는 예제는 많은데 엑셀파일(.xlsx)파일을 직접 읽어오는 방법은 잘 없더라구요
해당 예제는 xlsx 확장자의 엑셀을 불러와서 출력하는 예제입니다.
예제에 앞서 ExcelDataReader.DLL이 필요합니다.
● ExcelDataReader.DLL을 가져오자!!
먼저 Visual Studio을 실행한뒤 새프로젝트 -> 콘솔 앱(.NET Framework)로 만들어줍니다.
프로젝트가 열리면 프로젝트-> 마우스 우클릭 -> NuGet 패키지 관리 클릭
찾아보기 -> ExcelDataReader 입력 -> ExcelDataReader 와 ExcelDataReader.DataSet 패키지를 설치합니다.
# Unity에서 사용하지 않고 Winform, .NET 개발이라면 DLL 복사 패스하고 아래 예제 코드만 보시면 됩니다.
설치가 완료되면 해당 프로젝트 폴더로 들어갑니다.
해당 프로젝트 폴더안에 packages 폴더를 들어갑니다.
해당 패키지가 설치된 폴더가 있는것을 확인할 수 있습니다.
각 폴더의 lib 폴더에 들어가면 net20, net35 등 폴더가 있을겁니다.
▶ExcelDataReader Dll 복사
▶ExcelDataReader.DataSet Dll 복사
Unity의 사용버전에 따라 .net 버전 dll을 복사해옵니다.
대게 Unity 2019이상 사용한다면 .Net 4.X 지원되니까 위 이미지의 경로의 dll을 복사하면됩니다.
복사한 dll은 Unity 프로젝트의 Assets/Plugins 폴더에 넣어줍니다. (Plugins 폴더없으면 생성)
혹시나 받으실때 귀찮으시다면 아래 파일 다운로드하세요. ㅎㅎ
이제 준비는 끝났습니다.
이제 코드로 엑셀을 불러오겠습니다.
● ExcelDataReader를 이용하여 Excel 파일을 읽어보자!!
using UnityEngine;
using System.Data;
using System;
using System.IO;
using ExcelDataReader;
public class ExcelReaderTest : MonoBehaviour
{
void Start()
{
string filePath = @"C:\test.xlsx";
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
var result = reader.AsDataSet();
//시트 개수만큼 반복
for (int i = 0; i < result.Tables.Count; i++)
{
//해당 시트의 행데이터(한줄씩)로 반복
for (int j = 0; j < result.Tables[i].Rows.Count; j++)
{
//해당행의 0,1,2 셀의 데이터 파싱
string data1 = result.Tables[i].Rows[j][0].ToString();
string data2 = result.Tables[i].Rows[j][1].ToString();
string data3 = result.Tables[i].Rows[j][2].ToString();
}
}
}
}
}
}
감사합니다.
'Programming > Unity' 카테고리의 다른 글
[Unity3D] 유니티 프로젝트 이름 변경 및 복사 (8) | 2024.01.09 |
---|---|
[Unity] Text -TextMeshPro 한글이 깨진다? 초간단 한글 나오게 하기 ! (128) | 2023.04.11 |
[Unity] 유니티 컴파일 에러 - Assembly 'unityplastic' , PlasticSCM 관련 (683) | 2022.10.05 |
[Unity] 유니티에서 Mysql, MariaDB 연동하고 조회하기 (739) | 2022.09.23 |
[Unity, C#] Serialize를 활용하여 데이터를 파일로 저장하기 (List, Dictionary, Array, Class) (4) | 2022.09.22 |
댓글