SpreadSheet

복잡한 데이터를 쉽게 관리할 수 있는 SpreadSheet의 사용법이에요.

샘플맵 바로가기🔗

Scripting

🌱 SpreadSheet 생성

월드 트리에서 ‘오브젝트 생성’을 통해 SpreadSheet를 생성할 수 있어요.

  • Workspace / Toybox 내부에 생성

🔩 SpreadSheet 구조

용어설명

행/열 (+) (-)

행/열 추가 삭제

테이블 (셀 영역)

데이터 입력 영역 (행과 열로 구성)

닫기

스프레드 시트 닫기

저장

스프레드 시트 저장

초기화

스프레드 시트 초기화

Export

스프레드 시트를 csv 파일로 내보내기

Import

외부 csv 파일 가져오기


💡 SpreadSheet 작성시 참고사항

  • List 타입의 데이터는 🏕 쉼표 ( , ) 를 구분 문자로 사용해요.

  • GetBoolData 함수는 1 을 true, 이외 값은 false로 판별해요. ⚖


📤 SpreadSheet 내보내기 (Export)

Export 기능을 이용해 작성한 스프레드 시트를 csv 파일로 내보낼 수 있어요.


📥 외부 csv 파일 가져오기 (Import)

Import 기능을 이용해 외부 csv 파일을 가져올 수 있어요.


📊 스크립트에서 SpreadSheet 활용

SpreadSheet 선언 🎊

월드 트리의 경로를 이용해 스크립트에서 스프레드 시트를 선언해줄 수 있어요.

SpreadSheet의 데이터 가져오기 📥

‘T 프로퍼티’ 나 ‘함수’를 사용해서 특정 셀의 데이터를 가져올 수 있으며,

특정 셀을 지정할 때는 ‘행/열 번호’, ‘행/열 키’ 를 사용해요.

  • 행/열 번호 (Row/Column Num)

  • 행/열 키 (Row/Column Key)

  • 🛑 특정 셀을 지정할 때 ‘행/열 키’를 사용할 경우, UseStringKey 함수를 먼저 호출해줘야 해요.

local MonsterSheet = Workspace.MonsterSheet
MonsterSheet:UseStringKey()

local GoblinDam = MonsterSheet.T["Goblin"]["Dam"] -- 40
-- UseSetingKey 함수를 호출해주지 않으면 Key로 데이터 가져올 수 없어요.

예시) Goblin - Dam 값 가져오기

(1) T 프로퍼티 사용

  • T 프로퍼티는 테이블 접근 편의를 위한 프로퍼티에요.

  • SpreadSheet.T[Row][Column] 구조를 사용해요.

    local MonsterSheet = Workspace.MonsterSheet
    
    --행/열 번호 사용
    local GoblinDam = MonsterSheet.T[3][2] -- 40
    
    --행/열 키 사용
    SpreadSheet:UseStringKey()
    local GoblinDam = SpreadSheet.T["Goblin"]["Dam"] -- 40

  • 🛑 SpreadSheet.T[”RowKey”][”ColumnKey”] 구조에서는 Key로 사용하는 1행과 1열의 데이터는 가져올 수 없어요.

** Key를 이용해 1행 혹은 1열의 데이터를 가져올 경우에는 함수를 사용해주세요.

local SpreadSheet = Workspace.SpreadSheet
SpreadSheet:UseStringKey()

local a = SpreadSheet.T["Goblin"]["Name"] -- X
local b = SpreadSheet:GetStringData("Goblin", "Name") -- Goblin

(2) 함수 사용

  • Get__Data(Row, Column) 구조를 사용해요. ( * __에는 가져올 데이터의 타입이 들어가요. )

    local MonsterSheet = Workspace.MonsterSheet
    
    --행/열 번호 사용
    local GoblinDam = MonsterSheet:GetNumberData(3, 2) -- 40
    
    --행/열 키 사용
    MonsterSheet:UseStringKey()
    local GoblinDam = SpreadSheet:GetNumberData("Goblin", "Dam") -- 40

📜 SpreadSheet 함수 목록

함수명설명

UseStringKey

데이터를 키 값으로 찾을 수 있도록 선언해줘요.

GetStringData

지정한 셀의 데이터를 String 타입으로 반환해요.

GetStringListData

지정한 셀의 데이터를 StringList 타입으로 반환해요.

GetNumberData

지정한 셀의 데이터를 Number 타입으로 반환해요.

GetNumberListData

지정한 셀의 데이터를 NumberList 타입으로 반환해요.

GetBoolData

지정한 셀의 데이터를 Bool 타입으로 반환해요.

GetRowCount

스프레드 시트의 행 개수를 반환해요.

GetColumnCount

스프레드 시트의 열 개수를 반환해요.

GetRow

지정한 행의 데이터를 Table 타입으로 반환해요.

GetColumn

지정한 열의 데이터를 Table 타입으로 반환해요.

| void UseStringKey()

데이터를 키 값으로 찾을 수 있도록 선언 해줘요.

local MonsterSheet = Workspace.MonsterSheet
MonsterSheet:UseStringKey()

local GoblinDam = MonsterSheet.T["Goblin"]["Dam"]
local GoblinDam = MonsterSheet:GetNumberData("Goblin", "Dam")

print(GoblinDam) -- 40

| string GetStringData(number Row, number Column) | string GetStringData(string RowKey, string ColumnKey)

지정한 셀의 데이터를 String 타입으로 반환해요.

local MonsterSheet = Workspace.MonsterSheet

--행/열 번호 사용
local GoblinName = MonsterSheet:GetStringData(3, 1)

--행/열 키 사용
SpreadSheet:UseStringKey()
local GoblinName = MonsterSheet:GetStringData("Goblin", "Name")

print(GoblinName) -- Goblin

| stringList GetStringListData(number Row, number Column) | stringList GetStringListData(string RowKey, string ColumnKey)

지정한 셀의 데이터를 StringList 타입으로 반환해요. ** 구분문자는 쉼표( , ) 로, 쉼표를 기준으로 데이터를 나눠 테이블에 넣어요.

local MonsterSheet = Workspace.MonsterSheet

--행/열 번호 사용
local GoblinDesc = MonsterSheet:GetStringListData(3, 3)

--행/열 키 사용
MonsterSheet:UseStringKey()
local GoblinDesc = MonsterSheet:GetStringListData("Goblin", "Desc")

print(GoblinDesc[1], ", ", GoblinDesc[2]) -- 고블린 설명1, 고블린 설명2

| number GetNumberData(number Row, number Column) | number GetNumberData(string RowKey, string ColumnKey)

지정한 셀의 데이터를 Number 타입으로 반환해요.

local MonsterSheet = Workspace.MonsterSheet

--행/열 번호 사용
local GoblinDam = MonsterSheet:GetNumberData(3, 2)

--행/열 키 사용
MonsterSheet:UseStringKey()
local GoblinDam = MonsterSheet:GetNumberData("Goblin", "Dam")

print(GoblinDam) -- 40

| numberlist GetNumberListData(number Row, number Column) | numberlist GetNumberListData(string RowKey, string ColumnKey)

지정한 셀의 데이터를 NumberList 타입으로 반환해요. ** 구분문자는 쉼표( , ) 로, 쉼표를 기준으로 데이터를 나눠 테이블에 넣어요.

local MonsterSheet = Workspace.MonsterSheet

--행/열 번호 사용
local GoblinWayIDList = MonsterSheet:GetNumberListData(3, 4)

--행/열 키 사용
MonsterSheet:UseStringKey()
local GoblinWayIDList = MonsterSheet:GetNumberListData("Goblin", "WayIDList")

print(GoblinWayIDList[1], ", ", GoblinWayIDList[2], ", ", GoblinWayIDList[3])  --1, 7, 3

| bool GetBoolData(number Row, number Column) | bool GetBoolData(string RowKey, string ColumnKey)

지정한 셀의 데이터를 Bool 타입으로 반환해요. ** GetBoolData는 데이터 값이 1 일 때만 true를 반환해요.

local MonsterSheet = Workspace.MonsterSheet

--행/열 번호 사용
local OrcState1 = MonsterSheet:GetBoolData(2, 5)
local GoblinState1 = MonsterSheet:GetBoolData(3, 5)

--행/열 키 사용
SpreadSheet:UseStringKey()
local OrcState1 = MonsterSheet:GetBoolData("Orc", "State1")
local GoblinState1 = MonsterSheet:GetBoolData("Goblin", "State1")

print(OrcState1) -- true
print(GoblinState1) -- false

| number GetRowCount()

스프레드 시트의 행 개수를 반환해요.

local MonsterSheet = Workspace.MonsterSheet

local RowCount = MonsterSheet:GetRowCount()
print(RowCount) -- 5

| number GetColumnCount()

스프레드 시트의 열 개수를 반환해요.

local MonsterSheet = Workspace.MonsterSheet

local ColumnCount = MonsterSheet:GetColumnCount()
print(ColumnCount) -- 5

| Table GetRow(number Row)

지정한 행의 데이터를 Table 타입으로 반환해요.

local MonsterSheet = Workspace.MonsterSheet

local GoblinRowTable = MonsterSheet:GetRow(3)   -- 3행의 데이터
local GoblinDam = GoblinRowTable[2]             -- 3행의 2열 데이터

print(GoblinDam) -- 40

| Table GetColumn(number Column)

지정한 열의 데이터를 Table 타입으로 반환해요.

local MonsterSheet = Workspace.MonsterSheet

local DamColumnTable = MonsterSheet:GetColumn(2) -- 2열의 데이터
local GoblinDam = ColumnTable[3]                 -- 3행의 2열 데이터

print(GoblinDam) -- 40

Last updated