using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if UNITY_EDITOR
using Newtonsoft.Json;
using OfficeOpenXml;
using UnityEditor;
using System.IO;
#endif
public class UnityTools : MonoBehaviour
{
static int startCount = 2; //开始行数
static int EndCount = 500; //结束行数
static int nameCount = 1; //列数下标
static int passwordCount = 2; //列数下标
static int idCount = 3; //列数下标
[MenuItem("Disassembly/数据转换")]
public static void ChangeData()
{
string excelfilepath = Path.Combine(Application.dataPath.Replace("Assets", ""), "Excel/Data.xlsx"); //这个是拿到整个excel的项目路径
if (!File.Exists(excelfilepath)) //插件只支持xlsx
{
Debug.Log("此文件不存在");
return;
}
using (ExcelPackage ep = new ExcelPackage(new FileInfo(excelfilepath)))
{
ExcelWorksheet worksheet = ep.Workbook.Worksheets[1]; ///表格都是从1下标开始的,不是从0 的
if (worksheet != null)
{
MyDtate myData = new MyDtate(); //数据实例
for (int i = startCount; i < EndCount; i++)
{
SigleData sd = new SigleData(); //数据实例
sd.name = worksheet.Cells[i, nameCount].GetValue<string>();
sd.password = worksheet.Cells[i, passwordCount].GetValue<string>();
sd.id = worksheet.Cells[i, idCount].GetValue<int>(); //数据填入
myData.sigleData.Add(sd);
}
string disassemblyjson = JsonConvert.SerializeObject(myData, Formatting.Indented); //数据序列化
File.WriteAllText(Path.Combine(Application.streamingAssetsPath, "Data.json"), disassemblyjson); //写入对应位置的json
Debug.Log("End!!!");
}
}
}
private void Start()
{
//string str = Application.dataPath.Replace("Assets", "");
//Debug.Log(str);
}
[MenuItem("Disassembly/打开Excel文件")]
public static void OpenFile()
{
System.Diagnostics.Process.Start(Path.Combine(Application.dataPath.Replace("Assets", ""), "Excels/Disassembly.xlsx")); //打开文件快捷键
}
}
/// <summary>
/// 数据结构
/// </summary>
public class MyDtate
{
public List<SigleData> sigleData = new List<SigleData>();
}
public class SigleData
{
public string name;
public string password;
public int id;
}
Unity实现Excel导表操作
于 2022-07-19 09:40:50 首次发布
本文详细介绍了如何在Unity游戏引擎中实现Excel文件的读取和写入操作,包括利用Unity工具进行数据导入,以及在游戏中动态更新和保存Excel数据的方法,为游戏开发中的数据管理提供便利。
1049

被折叠的 条评论
为什么被折叠?



