把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組件來實現數據訪問的,效率十分令人不滿。一個端游項目一般要上百個表格,手游項目20、30個表格基本也是要的,于是表格導入程序的過程一般要幾分鐘,項目后期要接近半個小時。
此次分享的小工具,在速度上有質的飛越,比上述方法實現的工具有接近100倍的速度提升:
完整項目源代碼下載:https://github.com/neil3d/excel2json
主要功能是:把Exce的l表單轉換成json對象,并保存到一個文本文件中
使用方式是命令行式的,方便將多個表格轉換工作寫成一個批處理文件,一次執行完畢。
之所以能夠效率提高這么多,并不是博主的編程水平有多高,而是拜另外一個開源項目所賜:https://github.com/ExcelDataReader/ExcelDataReader
這個庫并沒有使用Office組件,而是直接讀取文件,解析其內容,繞過了復雜的組件機制、數據轉換過程,所以才能如此神速。這主要是也OpenXML標準帶了的好處。
順便科普一下,Excel的xlsx文件其實是一個標準的zip文件,如下圖所示。將其解壓縮之后,就可以根據OpenXML標準去解析里面的xml文件了。:)最近常遇到這樣的需求:把Excel表格中人員角色等數據,轉換成json格式的數據,然后把json數據導入到mongodb數據庫中。
在尋找快速解決辦法的時候,發現一款C#寫的工具,雖然不是C#開發人員,但是很好用,特此記錄。
github:https://github.com/neil3d/excel2json
windows 可執行文件下載
使用方法
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數據庫,也可做其他處理。
新聞熱點
疑難解答