读Exce文件写入到json文件汇总:
//命名空间
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEditor;
using Excel;
using LitJson;
using OfficeOpenXml;
public class ExcelData //定义ExcelData类
{
//定义表格的内容变量名称
public string UserName;
public string UserPwd;
}
//定义unity中窗口类
public class XiaoLang : EditorWindow
{
public XiaoLang()
{
//设置窗口的名字
this.titleContent = new GUIContent("测试窗口");
}
//扩展编译器
[MenuItem("MyTools/windows")]
static void MyWindows()
{
//固定套路格式
GetWindow(typeof(XiaoLang));
}
void OnGUI()
{
//定义窗口点击
if (GUILayout.Button("读取Excel至json文件", GUILayout.Width(200)))
{
//点击调用的方法
WriteExcelDataToJson();
}
}
//WriteExcelDataToJson方法
private void WriteExcelDataToJson()
{
//定义excel、Json文件路径
string excelPath = Application.streamingAssetsPath + "/userInfo.xlsx";
string JsonPath = Application.streamingAssetsPath + "/userInfo.json";
//定义数据存储的List
List<ExcelData> data = new List<ExcelData>();
//固定读写格式
ReadExcelData(data,excelPath);
WriteDataToJson(data, JsonPath);
AssetDatabase.Refresh();
}
//ReadExcelData方法、参数List、参数路径
private void ReadExcelData(List<ExcelData> data, string excelPath)
{
//定义读取信息
FileInfo info = new FileInfo(excelPath);
if (info.Exists == false)
{
Debug.Log("Excel文件不存在.");
return;
}
//固定读取数据流
FileStream stream = new FileStream(excelPath,FileMode.Open,FileAccess.Read);
IExcelDataReader reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
//读取文件首行
reader.Read();
//读取文件首行
while (reader.Read())
{
//读取文件格式并添加到List中
ExcelData exceldata = new ExcelData();
exceldata.UserName = reader.GetString(0);
exceldata.UserPwd = reader.GetString(1);
data.Add(exceldata);
}
}
//WriteDataToJson方法、参数List、参数路径
private void WriteDataToJson(List<ExcelData> data, string jsonPath)
{
//固定写Json文件格式
string jsonData = JsonMapper.ToJson(data);
File.WriteAllText(jsonPath,jsonData);
}
}
注:代码使用LitJson插件完成、其方法基于LitJson代码、用于Excel文件与Json文件之间的转换、原理雷同