把Excel表單轉(zhuǎn)換成json對象,并保存到一個文本文件中,并支持生成C# class數(shù)據(jù)定義代碼。
把Excel表單轉(zhuǎn)換成json對象,并保存到一個文本文件中。
表格格式見:ExampleData.xlsx
支持導(dǎo)出為數(shù)組 Json格式,每一行轉(zhuǎn)換為數(shù)組的一行,結(jié)構(gòu)如下: [ {行內(nèi)容}, {行內(nèi)容}, {...}, ]
支持導(dǎo)出為Dictionary Json對象, 每一行轉(zhuǎn)換成一個json對象。結(jié)構(gòu)如下: { ID:{行內(nèi)容}, ID:{行內(nèi)容}, ID:{...} }
Excel表單格式約定
第一行固定作為列名(用來構(gòu)造json字段名稱);
第一列固定作為對象的ID;
讀取Excel Workbook中的第一個sheet;
對于SQL導(dǎo)出模式:第二行固定為字段類型
使用表頭生成C#數(shù)據(jù)定義代碼
命令行參數(shù)
-e, --excel Required. 輸入的Excel文件路徑.
-j, --json 指定輸出的json文件路徑.
-s, --sql 指定輸出的SQL文件路徑.
-p, --csharp 指定輸出的C#數(shù)據(jù)定義代碼文件路徑.
-h, --header Required. 表格中有幾行是表頭.
-c, --encoding (Default: utf8-nobom) 指定編碼的名稱.
-l, --lowcase (Default: false) 自動把字段名稱轉(zhuǎn)換成小寫格式.
例如:excel2json --excel test.xlsx --json test.json --header 3 --array true
,其中的輸入和輸出文件,都在當前目錄下;
在游戲項目中一般都需要由策劃制作大量的游戲內(nèi)容,其中很大一部分是使用Excel表來制作的。于是程序就需要把Excel文件轉(zhuǎn)換成程序方便讀取的格式。
之前項目使用的Excel表導(dǎo)入工具都是通過Office Excel組件來實現(xiàn)數(shù)據(jù)訪問的,效率十分令人不滿。一個端游項目一般要上百個表格,手游項目20、30個表格基本也是要的,于是表格導(dǎo)入程序的過程一般要幾分鐘,項目后期要接近半個小時。
此次分享的小工具,在速度上有質(zhì)的飛越,比上述方法實現(xiàn)的工具有接近100倍的速度提升:
完整項目源代碼下載:https://github.com/neil3d/excel2json
主要功能是:把Exce的l表單轉(zhuǎn)換成json對象,并保存到一個文本文件中
使用方式是命令行式的,方便將多個表格轉(zhuǎn)換工作寫成一個批處理文件,一次執(zhí)行完畢。
之所以能夠效率提高這么多,并不是博主的編程水平有多高,而是拜另外一個開源項目所賜:https://github.com/ExcelDataReader/ExcelDataReader
這個庫并沒有使用Office組件,而是直接讀取文件,解析其內(nèi)容,繞過了復(fù)雜的組件機制、數(shù)據(jù)轉(zhuǎn)換過程,所以才能如此神速。這主要是也OpenXML標準帶了的好處。
順便科普一下,Excel的xlsx文件其實是一個標準的zip文件,如下圖所示。將其解壓縮之后,就可以根據(jù)OpenXML標準去解析里面的xml文件了。:)最近常遇到這樣的需求:把Excel表格中人員角色等數(shù)據(jù),轉(zhuǎn)換成json格式的數(shù)據(jù),然后把json數(shù)據(jù)導(dǎo)入到mongodb數(shù)據(jù)庫中。
在尋找快速解決辦法的時候,發(fā)現(xiàn)一款C#寫的工具,雖然不是C#開發(fā)人員,但是很好用,特此記錄。
github:https://github.com/neil3d/excel2json
windows 可執(zhí)行文件下載:http://www.companysz.com/softs/578020.html
使用方法
1.下載解壓到文件夾,盡量不要有中文路徑;
如圖:
2.新建一個Excel文件,Excel表格后綴必須為xlsx。并且填入相關(guān)數(shù)據(jù);
如圖:
3.windows命令行打開,執(zhí)行下面的命令:
excel2json –excel F:/order-gy.xlsx –json F:/ex.json –header 1
–excel 后面跟隨Excel文件路徑;–json 后面跟隨轉(zhuǎn)換的json文件之后保存路徑;–header 后面為Excel表格中頭占據(jù)多少行
4.執(zhí)行結(jié)果如圖:
得到的json文件稍作修改,便可直接導(dǎo)入mongodb數(shù)據(jù)庫,也可做其他處理。
新聞熱點
疑難解答
圖片精選