-
Excel2Unity
2015-12-18 04:01:52Excel2Unity 一个为Unity3D编写的插件,可以快速地将Excel文件转换为JSON、CSV和XML,方便在游戏过程中处理各种Excel文件。本项目参考了excel2json,在此表示感谢。 如何使用Excel2Unity 将本项目中的...Excel2Unity
一个为Unity3D编写的插件,可以快速地将Excel文件转换为JSON、CSV和XML,方便在游戏过程中处理各种Excel文件。本项目参考了excel2json,在此表示感谢。
如何使用Excel2Unity
将本项目中的Source文件夹直接复制到Unity3D项目中即可,Unity3D的菜单栏将会增加一个Plugins的菜单项,通过此菜单项的ExcelTools打开插件窗口。在项目资源中选中Excel文件后,点击插件窗口上的"转换"按钮即可!
使用Excel2Unity的默认约束条件
- Excel数据表默认以第一行作为字段
- Excel工作表默认以第一个工作表为主
- 目前支持utf-8和gb2312两种字符编码类型
怎么解决Excel2Unity中的Bug?
- 提交issues,然后由我来修改
- 因为编辑器插件的代码已经给出,所以如果你在使过程中遇到任何不爽的地方,可以直接修改源代码。
Excel文件转换示例
假设Excel文件定义如下:
则经过转换后的JSON、CSV和Xml文件分别如下:
[ { "姓名": "李逍遥", "等级": 12.0, "描述": "《仙剑奇侠传1》男主角", "技能": "万剑诀", "登场时间": "仙剑1、仙剑2、仙剑5、仙剑5前传" }, { "姓名": "慕容紫英", "等级": 20.0, "描述": "《仙剑奇侠传4》男主角", "技能": "千方残光剑", "登场时间": "仙剑4" }, { "姓名": "夏侯瑾轩", "等级": 18.0, "描述": "《仙剑奇侠传5前传》男主角", "技能": "文星耀太虚", "登场时间": "仙剑5前传" }, { "姓名": "皇甫卓", "等级": 24.0, "描述": "《仙剑奇侠传5前传》配角", "技能": "天中剑", "登场时间": "仙剑5前传" } ]
姓名,等级,描述,技能,登场时间, 李逍遥,12,《仙剑奇侠传1》男主角,万剑诀,仙剑1、仙剑2、仙剑5、仙剑5前传, 慕容紫英,20,《仙剑奇侠传4》男主角,千方残光剑,仙剑4, 夏侯瑾轩,18,《仙剑奇侠传5前传》男主角,文星耀太虚,仙剑5前传, 皇甫卓,24,《仙剑奇侠传5前传》配角,天中剑,仙剑5前传,
<?xml version="1.0" encoding="utf-8"?> <Table> <Row> <姓名>李逍遥</姓名> <等级>12</等级> <描述>《仙剑奇侠传1》男主角</描述> <技能>万剑诀</技能> <登场时间>仙剑1、仙剑2、仙剑5、仙剑5前传</登场时间> </Row> <Row> <姓名>慕容紫英</姓名> <等级>20</等级> <描述>《仙剑奇侠传4》男主角</描述> <技能>千方残光剑</技能> <登场时间>仙剑4</登场时间> </Row> <Row> <姓名>夏侯瑾轩</姓名> <等级>18</等级> <描述>《仙剑奇侠传5前传》男主角</描述> <技能>文星耀太虚</技能> <登场时间>仙剑5前传</登场时间> </Row> <Row> <姓名>皇甫卓</姓名> <等级>24</等级> <描述>《仙剑奇侠传5前传》配角</描述> <技能>天中剑</技能> <登场时间>仙剑5前传</登场时间> </Row> </Table>
-
unity3d 导出excel_unity3d 导出 Excel
2021-01-17 19:02:49我在unity里需要导出成Excel格式,试了一些方法,其中用c#的com组件的我还没成功不知道该怎么在unity里调用,(如果哪位大哥用别的方法在unity里成功了,可以交流下,最好给我一个小demo(849288321@qq.com),谢谢啦.),不过...我在unity里需要导出成Excel格式,试了一些方法,其中用c#的com组件的我还没成功不知道该怎么在unity里调用,(如果哪位大哥用别的方法在unity里成功了,可以交流下,最好给我一个小demo(849288321@qq.com),谢谢啦.),不过后来找到了这个org.in2bits.MyXls ,需要导入这个dll(网上有很多),然后用着还挺好用,我这写的一个小例子仅供参考,
using UnityEngine;
using System.Collections;
using org.in2bits.MyXls;
using System.Collections.Generic;
public class TestInfo
{
public string name;
public string id;
public string num;
};
public class ExcelMakerManager {
public static ExcelMakerManager eInstance;
public static ExcelMakerManager CreateExcelMakerManager()
{
if(eInstance==null)
{
eInstance = new ExcelMakerManager();
}
return eInstance;
}
//链表为 物体信息 .
public void ExcelMaker(string name, List listInfo)
{
XlsDocument xls = new XlsDocument();//新建一个xls文档
xls.FileName = name;// @"D:\tests.xls";//设定文件名
//Add some metadata (visible from Excel under File -> Properties)
xls.SummaryInformation.Author = "xyy"; //填加xls文件作者信息
xls.SummaryInformation.Subject = "test";//填加文件主题信息
string sheetName = "Sheet0";
Worksheet sheet = xls.Workbook.Worksheets.AddNamed(sheetName);//填加名为"chc 实例"的sheet页
Cells cells = sheet.Cells;//Cells实例是sheet页中单元格(cell)集合
int rowNum = listInfo.Count;
int rowMin = 1;
int row = 0;
for (int x = 0; x < rowNum + 1; x++)
{
if (x == 0)
{
//根据具体的物体信息 .需要重新写
cells.Add(1, 1, "名字");
cells.Add(1, 2, "ID");
cells.Add(1, 3, "数量");
}
else
{
cells.Add(rowMin + x, 1, listInfo[row].id);
cells.Add(rowMin + x, 2, listInfo[row].name);
cells.Add(rowMin + x, 3, listInfo[row].num);
row++;
}
}
xls.Save();
}
}
然后下面是调用上面的这个方法
using UnityEngine;
using System.Collections;
using System.IO;
using org.in2bits.MyXls;
using System;
using System.Collections.Generic;
public class test : MonoBehaviour
{
string path;
TestInfo test1;
TestInfo test2;
TestInfo test3;
List listInfos;
// Use this for initialization
void Start()
{
ExcelMakerManager.CreateExcelMakerManager();
// --测试数据
test1 = new TestInfo();
test1.id = "one";
test1.name = "test1";
test1.num = "x";
test2 = new TestInfo();
test2.id = "two";
test2.name = "test2";
test2.num = "22";
test3 = new TestInfo();
test3.id = "tree";
test3.name = "test3";
test3.num = "333";
listInfos = new List();
listInfos.Add(test1);
listInfos.Add(test2);
listInfos.Add(test3);
// --测试数据
// ManagerExcel.CreateE();
}
// Update is called once per frame
void Update()
{
}
void OnGUI()
{
if (GUI.Button(new Rect(100, 0, 100, 100), "aa"))
{
PrintExcel();
Debug.Log("aaaa");
}
}
public void PrintExcel()
{
if (!Directory.Exists(Application.dataPath + "/Prints"))
{
Directory.CreateDirectory(Application.dataPath + "/Prints");
}
path = Application.dataPath + "/Prints/Excel_"
+ System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ".xls";
ExcelMakerManager.eInstance.ExcelMaker(path, listInfos);
}
}
至于改字体啥的网上都有相应的例子.可以自己去看看...这里就不多说了.
结果如图:
-
Excel4Unity-Excel for Unity提供.xls和.xlsx的读写操作
2019-12-19 19:40:24在做游戏时,经常会遇到需要读取Excel表格,用来配置游戏数据,供策化调试程序用。这里Down了三种方法,都采用第三方库,不需要安装Office,关键free (When playing games, we often encounter the need to read ... -
unityExcel.xlxs.unitypackage
2016-05-27 13:58:52unityExcel.xlxs.unitypackage -
unity读取Excel
2018-08-16 10:10:54在unity中通过EPPlus库读写Excel表格,直接导入unity即可使用 -
unity3d 导出excel_unity3d读写EXCEL文件的方法
2021-01-17 19:02:48对 Excel 表的操作少不了要引入第三方库,首先我们需要引入Excel.dll 和ICSharpCode.SharpZipLib.dll,这两个类库在网上都能找到;然后我们还需要引入System.Data.dll,这个类库在 Unity3D 的安装路径下的Editor\...对 Excel 表的操作少不了要引入第三方库,首先我们需要引入 Excel.dll 和 ICSharpCode.SharpZipLib.dll,这两个类库在网上都能找到;然后我们还需要引入 System.Data.dll,这个类库在 Unity3D 的安装路径下的 Editor\Data\Mono\lib\mono\unity 文件夹下能找到。wiseglove数据手套客户,可以在我们提供的数据手套FOR UNITY3D演示项目下找到。
using Excel;
using System.Data;
using System.IO;
using UnityEngine;
public class Test : MonoBehaviour
{
#region -- 变量定义
#endregion
#region -- 系统函数
private void Start()
{
DataRowCollection _dataRowCollection = ReadExcel(Application.streamingAssetsPath + "/手套录制数据.xlsx");
//这里从 1 开始循环,因为第一行被表头占据了。所以具体解析数据的时候需要根据具体情况来定。
for (int i = 1; i < _dataRowCollection.Count; i++)
{
Debug.Log("拇指" + _dataRowCollection[i][0] + "--" + "食指" + _dataRowCollection[i][1] + "--" + "中指" + _dataRowCollection[i][2])+ "--" + "无名指" + _dataRowCollection[i][2])+ "--" + "小指" + _dataRowCollection[i][2]);
} }
#endregion
#region -- 自定义函数
// 读取 Excel 表并返回一个 DataRowCollection 对象
//手套录制数据的Excel 表路径///读取的 Sheet 索引。Excel 表中是有多个 Sheet 的///private static DataRowCollection ReadExcel(string _path, int _sheetIndex = 0)
{
FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read, FileShare.Read);
//IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);//读取 Excel 1997-2003版本
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);//读取 2007及以后的版本
DataSet result = excelReader.AsDataSet();
return result.Tables[_sheetIndex].Rows;
}
// 读取 Excel 表并返回一个 DataRowCollection 对象
//Excel 表路径///读取的 Sheet 名称。Excel 表中是有多个 Sheet 的///private static DataRowCollection ReadExcel(string _path, string _sheetName)
{
FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read, FileShare.Read);
//IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);//读取 Excel 1997-2003版本
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);//读取 2007及以后的版本
DataSet result = excelReader.AsDataSet();
return result.Tables[_sheetName].Rows;
}
#endregion
}
这里需要注意的是,根据 Excel 表的版本不同,使用的方法也不一致,我在代码中也有注释,大家看一下就行。还有就是 Sheet ,在读取的时候,我们可以根据索引去读取,也可以根据名称去读取,我也写了重载方法。
如果这样写,发布后运行,也许会报错,这时我们就又需要引入第三方库了,去 Unity3D 安装路径下的Editor\Data\Mono\lib\mono\unity,找到所有 I18N 开头的类库导入Unity中,就不会报错了。
OK, 现在Excel 表的读取功能解决了,那我们如何生成一张 Excel 表,并写入数据呢?这时我们需要导入一个叫 EPPlus.dll 的类库,网上也有,大家可以自己下载。
代码如下:
private void Start()
{
string _filePath = Application.streamingAssetsPath + "/录制数据.xlsx";
string _sheetName = "详情";
FileInfo _excelName = new FileInfo(_filePath);
if (_excelName.Exists)
{
//删除旧文件,并创建一个新的 excel 文件。
_excelName.Delete();
_excelName = new FileInfo(_filePath);
}
//通过ExcelPackage打开文件
using (ExcelPackage package = new ExcelPackage(_excelName))
{
//在 excel 空文件添加新 sheet,并设置名称。
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(_sheetName);
//添加列名
worksheet.Cells[1, 1].Value = "时间";
worksheet.Cells[1, 2].Value = "拇指";
worksheet.Cells[1, 3].Value = "中指";
worksheet.Cells[1, 4].Value = "无名指";
worksheet.Cells[1, 5].Value = "小指";
//添加一行数据
worksheet.Cells[2, 1].Value = 10; //ms
worksheet.Cells[2, 2].Value = 33.0f;
worksheet.Cells[2, 3].Value = 34.0f;
worksheet.Cells[2, 4].Value = 35.0f;
worksheet.Cells[2, 5].Value = 36.0f;
//添加一行数据
worksheet.Cells[3, 1].Value = 20; //ms
worksheet.Cells[3, 2].Value = 33.0f;
worksheet.Cells[3, 3].Value = 34.0f;
worksheet.Cells[3, 4].Value = 35.0f;
worksheet.Cells[3, 5].Value = 36.0f;
//添加一行数据
worksheet.Cells[4, 1].Value = 30; //ms
worksheet.Cells[4, 2].Value = 33.0f;
worksheet.Cells[4, 3].Value = 34.0f;
worksheet.Cells[4, 4].Value = 35.0f;
worksheet.Cells[4, 5].Value = 36.0f;
//保存excel
package.Save();
}
}
Excel 表的读写操作大致就是这样的。因为 Excel 表 包含太多的格式信息,好是将 Excel 表另存为纯文本的 CSV 文件再去读取,我们另一篇技术文章讨论关于 CSV 文件的读取。
-
ReadExcel.unitypackage
2020-01-02 13:56:59Unity读取Excel,包括一个简单的Demo和必要的dll文件。谢谢下载!谢谢下载!谢谢下载!谢谢下载!谢谢下载! -
Unity 读取Excel
2018-05-03 15:10:06Unity3d 读写Excel文档,里边有一个Demo 场景,可以快速读写Excel -
unityExcel插件
2020-08-20 18:36:14参考大佬的文章自己修改了一下写的excel自动化工具 根据Excel自动生成对应的c#脚本和asset配置文件 -
Excel2Unity-master.zip
2019-09-20 21:36:56excel 转unity可识别格式的工具,找了很久才找到,现在提供给大家 -
unity打开excel表格_unity 读取、更改excel(.xlsx类型)数据-附件资源
2021-03-05 15:23:39unity打开excel表格_unity 读取、更改excel(.xlsx类型)数据-附件资源 -
unity打开excel表格_Unity读取Excel表格
2020-12-19 13:53:53usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingSystem.Data;...usingExcel;usingUnityEngine.UI;using Object =UnityEngine.Object;public classfinsh :...usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingSystem.Data;usingSystem.IO;usingExcel;usingUnityEngine.UI;using Object =UnityEngine.Object;public classfinsh : MonoBehaviour
{//public设置为unity界面配置
publicRectTransform content;publicGameObject table;publicGameObject tableDemo;private string file1 = "Assets/finsh/cc.xlsx";//读取的文件的路径//根据读取Excel表格的数量通过克隆创建对应的表格
public voidCloneForm()
{
Dictionary dictionary =LoadInfo(file1);foreach (var i indictionary)
{
content= table.GetComponent();var task =Instantiate(tableDemo, content);
task.gameObject.SetActive(true);
task.GetComponent().text =i.Value;
}
}//读取加载
public voidread()
{
GameObject.Find("table").AddComponent().LoadInfo(file1);
print(file1);
CloneForm();
}//找到并读取Excel,转换成DataSet型变量
DataSet ReadExcel(stringpath)
{
Debug.Log(path+ "read");
FileStream fs=File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read);
IExcelDataReader iExcelDR=ExcelReaderFactory.CreateOpenXmlReader(fs);
DataSet ds=iExcelDR.AsDataSet();
fs.Close();returnds;
}//加载记录表中信息
public Dictionary LoadInfo(stringpath)
{
Debug.Log(path+"load");
Dictionary table_list=new Dictionary();
DataSet ds=ReadExcel(path);int num= ds.Tables.Count; //查询文件有几个表
print("表"+num);int columns = ds.Tables[1].Columns.Count; //总列数,Tables[0]为待查询的表1
int rows = ds.Tables[1].Rows.Count; //总行数
GetComponent().constraintCount =columns;
print(rows+ "---" +columns);for (int j = 0; j < rows; j++)
{for (int i = 0; i < columns; i++)
{//读取表1的第i行第j列
string value = ds.Tables[1].Rows[j][i].ToString(); //ds.Tables[0].Rows[i][0]是Object,需强行转换为string
string key = (j + 1) + "行" + (i + 1) + "列";
table_list.Add(key,value);//Debug.Log(key + "===" + value);
}
}returntable_list;
}
}/*创建对象
private Object CreateSprite(int r, int c)
{
GameObject go=new GameObject(r.ToString()+c.ToString());
go.AddComponent();
go.transform.SetParent(this.transform,false);
return go;
print(this.transform.name);
}*/
-
Excel2Unity 将Excel文件转换为JSON、CSV和XML
2020-07-15 16:31:00一个为Unity3D编写的插件,可以快速地将Excel文件转换为JSON、CSV和XML,方便在游戏过程中处理各种Excel文件。 Excel2Unity 一个为Unity3D编写的插件,可以快速地将Excel文件转换为JSON、CSV和XML,方便在游戏过程... -
Unity 读取Excel文件 excel.dll
2018-04-02 12:06:28Unity 读取Excel文件 包含 Excel.dll ICSharpCode.SharpZipLib System.Data -
unityExcel读写
2021-01-18 13:01:35自己查找总结的一个,轻量级、易上手的插件,一个二维数组解决所有问题,基于EPPlus的优化 -
unity打开excel表格_Unity读取Excel文件(附源代码)
2020-12-29 21:20:11今天想弄个Unity读取Excel的功能的,发现网上有许多方法,采用其中一种方法:加入库文件 Excel.dll 和ICSharpCode.SharpZipLib.dll库文件,(还有System.Data.dll也要拷贝进来,在Unity安装路径C:\Program Files\... -
Unity读取Excel文件
2019-05-07 19:35:59Unity调用Excel所使用的dll文件,库文件 Excel.dll 和ICSharpCode.SharpZipLib.dll库文件 -
unity mysql生成cexcel_Unity 读取json及生成Excel对应的.CS类
2021-01-19 21:14:33生成Excel对应的类using System.Collections;using System.Collections.Generic;...using UnityEditor;using System.IO;using Excel;using System.Data;using System;public class CreateClass{[MenuItem("... -
unity打开excel表格_Unity读取Excel文件转换XML格式文件
2021-02-11 13:52:20本文实例为大家分享了Unity读取Excel文件转换XML格式文件的具体代码,供大家参考,具体内容如下下载连接点击打开链接using System.Collections.Generic;using UnityEngine;using System.IO;using System.Xml;using ... -
unity-Excel-导入excel数据表.unitypackage
2019-09-27 18:00:39private List<Student> studentList; public void WriteStudentInfo(List<Student> student) { studentList = new List(); studentList = student; string path = Application.... // WriteExcel(path); } -
Uni-Excel插件支持Unity导入导出Excel
2018-01-20 10:00:01该插件是基于NOPI在Unity平台上进行Excel操作,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作,该插件已包含Dll文件并且已经封装,可以直接修改方法来实现对Excel的不同操作 -
unity打开excel表格_Unity3D中Excel表的读取与写入
2020-12-19 13:53:46废话不多说,对 Excel 表的操作少不了要引入第三方库,首先...然后我们还需要引入System.Data.dll,这个类库在 Unity3D 的安装路径下的Editor\Data\Mono\lib\mono\unity 文件夹下能找到。代码如下:1 usingExcel;2 u... -
unity读写.Excel文件
2021-03-22 19:35:14unity读写.Excel文件 -
Unity Excel导入导出工具项目案例.unitypackage
2019-09-29 11:07:15Unity Excel导入导出工具项目案例.unitypackageUnity Excel导入导出工具项目案例.unitypackageUnity Excel导入导出工具项目案例.unitypackage -
unity 加载excel
2017-12-01 13:25:36将Excel解析并进行压缩以及加密,之后成放到自定义的文件中。让您不再担心数据设计和游戏! 特性 - 纯c#代码 - 对原始数据进行压缩以及加密 - 常见移动端动态解析加密后的文件 - NET 2.0子集兼容性 支持的... -
unity打开excel表格_unity 导入Excel表格数据-关于在unity里写excel的问题 求大神来解答一下。...
2020-12-19 13:53:48unity3d 如何设置Excel,一个单元格两种格式。(目...Unity读取Excel表格数据文件.xls或.xlsx。方法有:1. 利用已有的 Unity Excel 个你到 Asset Store 上搜索 Excel 就能找到。或者在 download.csdn.net/detail/u... -
Unity中Excel插件
2018-09-27 11:44:55用于unity中读取Excel表和写入Excel表 使用以下引用 using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using OfficeOpenXml; using System.IO; -
unity 读取Excel
2019-02-21 10:14:52前提:使用unity读取excel时,使用如图的dll: 去读取的时候,在编辑器内运行正常,但是在导出时会发现exe在运行时不能正常读取excel。 用这个dll可以读取2007以后的格式.xlsx,也可以读取97-2003的.xls。 ...