excel2json

 在遊戲項目中通常都須要由策劃製做大量的遊戲內容,其中很大一部分是使用Excel表來製做的。因而程序就須要把Excel文件轉換成程序方便讀取的格式。html

以前項目使用的Excel表導入工具都是經過Office Excel組件來實現數據訪問的,效率十分使人不滿。一個端遊項目通常要上百個表格,手遊項目20、30個表格基本也是要的,因而表格導入程序的過程通常要幾分鐘,項目後期要接近半個小時。這裏分享的這個小工具,在速度上有質的飛越,比上述方法實現的工具備接近100倍的速度提高.linux

版本更新

主要功能:

  • 支持讀取 Excel 97-2003的 .xls格式和2007的 .xlsx格式;
  • 支持多個表單導出;
  • 把Excel表單轉換成Json對象,並保存到一個文本文件中。支持將表中內容轉換成Array,或者以第一列爲ID的字典對象

支持GUI模式和命令行模式

GUI模式方便預覽;而命令行式,方便將多個表格轉換工做寫成一個批處理文件(.bat或者.sh),一鍵處理幾十個表格。 例如,使用下面這個.bat批處理文件,能夠一次性轉換」.\excel」目錄下全部的.xlsx文件到」.\json」目錄:git

@SET EXCEL_FOLDER=.\excel
@SET JSON_FOLDER=.\json
@SET EXE=.\excel2json.exe

@ECHO Converting excel files in folder %EXCEL_FOLDER% ...
for /f "delims=" %%i in ('dir /b /a-d /s %EXCEL_FOLDER%\*.xlsx') do (
    @echo   processing %%~nxi 
    @CALL %EXE% --excel %EXCEL_FOLDER%\%%~nxi --json %JSON_FOLDER%\%%~ni.json --header 3
)

excel2json_gui
excel2json_cmd

命令行參數

  • -e, --excel Required. 輸入的Excel文件路徑.
  • -j, --json 指定輸出的json文件路徑.
  • -h, --header (Default: 3)表格中有幾行是表頭.
  • -c, --encoding (Default: utf8-nobom) 指定編碼的名稱.
  • -l, --lowcase (Default: false) 自動把字段名稱轉換成小寫格式.
  • -a 序列化成數組
  • -d, --date:指定日期格式化字符串,例如:dd / MM / yyy hh: mm:ss

例如:excel2json --excel test.xlsx --json test.json --header 3 --array true,其中的輸入和輸出文件,都在當前目錄下;github

Excel表單格式約定

excel2json_example

  • 第一行固定做爲列名(用來構造json字段名稱);
  • 第一列固定做爲對象的ID;
  • 讀取Excel Workbook中的第一個sheet;
  • 對於SQL導出模式:第二行固定爲字段類型
  • 使用表頭生成C#數據定義代碼

在Mac、Linux上運行

這個小工具使用C#編寫,編譯出來的.exe經過Mono便可在Mac或者Linux上運行。json

原文連接數組

相關文章
相關標籤/搜索