private void _OnDataSetUpdated( DataSet dataSet, XlsxParser.Errors errors) { if (errors.count > 0) { foreach (var error in errors) { Debug.LogError(error); } _RefreshConsole(); return; } var table = dataSet["Object3D_Patch"]; var changes = GetTableChanges(table, _oldTable); if (changes.Length > 0) { foreach (var change in changes.Split('\n')) { Debug.Log(change); } } _oldTable = table; DataTable.Warnings warnings = null; warnings = table.GetObjectMappingWarnings <Object3D>(); foreach (var warning in warnings) { Debug.LogWarning(warning); } var n = 0; warnings = table.Populate(_myObjects, () => { var inst = Object3D.Create(); var x = 3.0F * (n % 3); var z = 3.0F * (n / 3); ++n; inst.transform.position = new Vector3(x, 3, z); return(inst); }, 0); foreach (var warning in warnings) { Debug.LogWarning(warning); } _RefreshConsole(); }
IEnumerator Start() { var ftc = new FieldTypeConverter(); var parser = new XlsxParser( "res://XlsxParser_02".SetFieldTypeConverter(ftc) ); yield return(parser.coroutine); if (parser.errors.count > 0) { Debug.LogWarning(parser.errors); yield break; } var table = parser.dataSet["Object3D"]; DataTable.Warnings warnings = null; warnings = table.GetObjectMappingWarnings <Object3D>(); if (warnings.count > 0) { Debug.LogWarning(warnings); } _myObjects = new Dictionary <string, Object3D>(); var n = 0; // If key field is duplicated, will be overwritten. // To ensure key unique, use data validation in xlsx editor. // If keyFieldIndex is negative, key is set row order. warnings = table.Populate(_myObjects, () => { var inst = Object3D.Create(); var x = 3.0F * (n % 3); var z = 3.0F * (n / 3); ++n; inst.transform.position = new Vector3(x, 3, z); return(inst); }, 0); if (warnings.count > 0) { Debug.LogWarning(warnings); } }