1.Unity3D Excel表格数据处理模块详解
2.excel2json软件使用方法
3.å¦ä½ç¨NPOI建ç«EXCELçå¤ä¸ªSHEET
4.excel导å
¥sqlï¼ç¨sqlè¯å¥
Unity3D Excel表格数据处理模块详解
一、引言
在Unity3D开发中,数据处理是关键环节,Excel作为常见数据存储方式,能提供清晰结构与便捷编辑,因此广泛应用。微信 网站 源码本文详细讲解Unity3D中Excel数据处理模块,包括技术分析与代码实例。
二、技术详解
处理Excel数据,Unity3D通常借助第三方插件,如NPOI、Epplus、ExcelDataReader。这些插件能实现文件读取与写入功能,云集优选源码依据需求选择合适插件。
数据处理主要步骤如下:
(1) 读取Excel文件:利用插件API获取文件中数据。
(2) 解析数据:将读取数据转换为程序可处理结构,如数组、列表或自定义对象。
(3) 使用数据:将解析数据用于游戏逻辑处理与UI展示。
(4) 选填:若需修改数据,高校php源码利用插件API更新Excel文件。
三、代码实现
使用ExcelDataReader插件读取与解析示例代码如下:
通过NuGet包管理器或手动下载安装ExcelDataReader插件。
四、总结
本文介绍了Unity3D中Excel数据处理模块实现流程与代码实例,第三方插件简化了文件读取与数据处理。此方式能提高游戏开发效率与灵活性,锅底优选源码适用于游戏配置、角色属性、道具信息等场景。
excel2json软件使用方法
把Excel表单转换成json对象,并保存到一个文本文件中,并支持生成C# class数据定义代码。把Excel表单转换成json对象,留言吧源码并保存到一个文本文件中。
表格格式见:ExampleData.xlsx
支持导出为数组 Json格式,每一行转换为数组的一行,结构如下: [ { 行内容}, { 行内容}, { ...}, ]
支持导出为Dictionary Json对象, 每一行转换成一个json对象。结构如下: { ID:{ 行内容}, ID:{ 行内容}, ID:{ ...} }
Excel表单格式约定
第一行固定作为列名(用来构造json字段名称);
第一列固定作为对象的ID;
读取Excel Workbook中的第一个sheet;
对于SQL导出模式:第二行固定为字段类型
使用表头生成C#数据定义代码
命令行参数
-e, --excel Required. 输入的Excel文件路径.
-j, --json 指定输出的json文件路径.
-s, --sql 指定输出的SQL文件路径.
-p, --csharp 指定输出的C#数据定义代码文件路径.
-h, --header Required. 表格中有几行是表头.
-c, --encoding (Default: utf8-nobom) 指定编码的名称.
-l, --lowcase (Default: false) 自动把字段名称转换成小写格式.
例如:excel2json --excel test.xlsx --json test.json --header 3 --array true,其中的输入和输出文件,都在当前目录下;
在游戏项目中一般都需要由策划制作大量的游戏内容,其中很大一部分是使用Excel表来制作的。于是程序就需要把Excel文件转换成程序方便读取的格式。
之前项目使用的Excel表导入工具都是通过Office Excel组件来实现数据访问的,效率十分令人不满。一个端游项目一般要上百个表格,手游项目、个表格基本也是要的,于是表格导入程序的过程一般要几分钟,项目后期要接近半个小时。
此次分享的小工具,在速度上有质的飞越,比上述方法实现的工具有接近倍的速度提升:
完整项目源代码下载:/softs/.html
使用方法
1.下载解压到文件夹,尽量不要有中文路径;
如图:
2.新建一个Excel文件,Excel表格后缀必须为xlsx。并且填入相关数据;
如图:
3.windows命令行打开,执行下面的命令:
excel2json excel F:\order-gy.xlsx json F:\ex.json header 1
excel 后面跟随Excel文件路径;json 后面跟随转换的json文件之后保存路径;header 后面为Excel表格中头占据多少行
4.执行结果如图:
得到的json文件稍作修改,便可直接导入mongodb数据库,也可做其他处理。
å¦ä½ç¨NPOI建ç«EXCELçå¤ä¸ªSHEET
æè¦ç¨ç½é¡µåä¸ä¸ªæèµæåºæ¡£æ¡è¾åºæEXCELçç½é¡µ
使ç¨çæ¯NPOIç模ç»
èNPOIéé¢ç模ç»æä¸ä¸ªæ°å¢SHEETç "HSSFSheet"
å¦æè¦æ°å¢ä¸ä¸ªExcelçSheet
å°±è¦æ "HSSFSheet pdsheet = workbook.CreateSheet("My Sheet");"
ä¾å¦è¿æ ·çç¨å¼ç
ç°å¨å¦æææ³ä½¿ç¨åå
让ä»è·åºå¾å¤ä¸ªSheetæ¥
å¯æ¯ä»é½ä¼è¯´ "The workbook already contains a sheet of this name"
åºè¯¥æ¯è¯´å·²ç»æç¨è¿pdsheetè¿ä¸ªçå称äº
ç°å¨ææ³é®ä¸ä¸
å°±æ¯å¦æè¦ç¨ååè·
è¦æ麼让她æ¯æ¬¡è·
é½å¯ä»¥è·åºä¸ä¸æ ·çsheetå称
ä¾å¦ï¼
第ä¸æ¬¡è·ï¼HSSFSheet pdsheet1 = workbook.CreateSheet("My Sheet");
第äºæ¬¡è·ï¼HSSFSheet pdsheet2 = workbook.CreateSheet("My Sheet");
第ä¸æ¬¡è·...
ä¸æå¾è¦æ麼å设è¶
谢谢大家ã
ä¸é¢æ¯ååå çç¨å¼ç :
HSSFSheet pdsheet = workbook.CreateSheet("My Sheet");
string content = "", pdName = "";
int x = 1, y, z;
string[] pdarray;
string[] pdtable = new string[] { "\t\n" };
SqlConnection pdobjCon = new SqlConnection(WebConfigurationManager.ConnectionStrings["loginConnectionString"].ConnectionString);
pdobjCon.Open();
string pdqs = "SELECT * FROM dbo.Purchasedetail where Purchase_id = '" + abc + "'";
SqlDataAdapter pdobjDataAdapter = new SqlDataAdapter(pdqs, pdobjCon);
SqlConnection pdSql_Conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["loginConnectionString"].ConnectionString);
string pdSqlString = "Select * From dbo.Purchasedetail where Purchase_id = '" + abc + "'";
pdSql_Conn.Open();
using (SqlCommand pdSql_Command = new SqlCommand())
{
SqlDataReader pdSql_Reader;
pdSql_Command.Connection = pdSql_Conn;
pdSql_Command.CommandText = pdSqlString;
pdSql_Reader = pdSql_Command.ExecuteReader();
DataTable pdschemaTable = pdSql_Reader.GetSchemaTable();
DataRow pddataRow;
z = (int)pdschemaTable.Rows.Count;
for (y = 0; y <= z - 1; y++)
{
pddataRow = pdschemaTable.Rows[y];
pdName += pddataRow["ColumnName"].ToString();
pdName += "\t\n";
}
pdSql_Command.Dispose();
pdSql_Reader.Close();
pdSql_Reader.Dispose();
}
pdSql_Conn.Close();
pdarray = pdName.Split(pdtable, StringSplitOptions.None);
for (y = 0; y <= z - 1; y++)
{
pdsheet.CreateRow(0).CreateCell(y).SetCellValue(pdarray[y]);
}
DataSet pdobjDataSet = new DataSet();
pdobjDataAdapter.Fill(pdobjDataSet, "pd");
DataTable pddt = pdobjDataSet.Tables[0];
foreach (DataRow pdrow in pddt.Rows)
{
for (y = 0; y <= z - 1; y++)
{
pdsheet.CreateRow(x).CreateCell(y).SetCellValue(pdrow[pdarray[y]].ToString());
}
x++;
}
谢谢大家 :)
excelå¯¼å ¥sqlï¼ç¨sqlè¯å¥
1.æå¼SQL Server Management Studioï¼æå¾ä¸çè·¯å¾è¿å ¥å¯¼å ¥æ°æ®çé¢ã2.å¯¼å ¥çæ¶åéè¦å°EXCELçæ件åå¤å¥½ï¼ä¸è½æå¼ãç¹å»ä¸ä¸æ¥ã
3.æ°æ®æºï¼éæ©âMicrosoft Excelâé¤äºEXCELç±»åçæ°æ®ï¼SQLè¿æ¯æå¾å¤å ¶å®æ°æ®æºç±»åã
4.éæ©éè¦å¯¼å ¥çEXCELæ件ãç¹å»æµè§ï¼æ¾å°å¯¼å ¥çæ件确å®ã
5.å次确认æ件路å¾æ²¡æé®é¢ï¼ç¹å»ä¸ä¸æ¥ã
6.é»è®¤ä¸ºæ¯ä½¿ç¨çWINODWS身份éªè¯ï¼æ¹ä¸ºä½¿ç¨SQL身份éªè¯ãè¾å ¥æ°æ®åºå¯ç ï¼æ³¨æï¼æ°æ®åºï¼è¿éççæ¯ä¸æ¯å¯¼å ¥çæ°æ®åºãä¹å¯ä»¥å¨è¿é临æ¶æ¹åï¼éæ©å ¶å®æ°æ®åºã
7.éæ©å¯¼å ¥æ°æ®EXCEL表å 容èå´ï¼è¥æå 个SHEET表ï¼æä¸ä¸ªSHEET表ä¸æäºæ°æ®ä¸æ³å¯¼å ¥ï¼åå¯ä»¥ç¼åæ¥è¯¢æå®çæ°æ®è¿è¡å¯¼å ¥ãç¹å»ä¸ä¸æ¥ã
8.éæ©éè¦å¯¼å ¥çSHEET表ï¼æ¯å¦æå¨è¿éå°SHEET表åæ¹ä¸ºpriceï¼åå¯¼å ¥åçé¢çSQLæ°æ®åºè¡¨ä¸ºprice$ãç¹å»è¿å ¥ä¸ä¸æ¥ã
9.ç¹å»è¿å ¥ä¸ä¸æ¥ã
.å¨è¿éå®æ´æ¾ç¤ºäºå¯¼å ¥çä¿¡æ¯ï¼æ§è¡å 容ï¼å次确认æ 误åï¼ç¹å»å®æï¼å¼å§æ§è¡ã
.å¯ä»¥çå°ä»»å¡æ§è¡çè¿ç¨åè¿åº¦ã
.æ§è¡æåï¼å¯ä»¥ççæ§è¡ç»æï¼å·²ä¼ è¾è¡ï¼è¡¨ç¤ºä»EXCEL表ä¸å¯¼å ¥æ¡æ°æ®ï¼å æ¬ååæ é¢ãè¿æ ·å°±å®æäºï¼æ§è¡SQLæ¥è¯¢è¯å¥ï¼SELECT * FROM price$å°±å¯ä»¥æ¥çå·²å¯¼å ¥çæ°æ®å 容ã