1. 程式人生 > 其它 >csv2js csv轉成js程式碼

csv2js csv轉成js程式碼

技術標籤:遊戲周邊工具jscsvc#

開發目的:

同事比較喜歡使用js檔案,所以寫了個工具將配置錶轉成js檔案

上程式碼:

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Text;

namespace CSV2JS
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("拖入CSV檔案...");
            string path = Console.ReadLine();
            string outPath = path.Substring(0, path.LastIndexOf('\\')) + @"\_data.js";
            OpenCSV(path, outPath);//讀寫取csv
            Console.WriteLine("按任意鍵結束...");
            Console.ReadLine();
        }

        public static void OpenCSV(string filePath ,string outPath)
        {
            FileStream fs = new FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);

            StreamReader sr = new StreamReader(fs, Encoding.UTF8);
            //記錄每次讀取的一行記錄
            string strLine;
            string[] keys = { };
            List<List<string>> values = new List<List<string>>();

            bool isFirst = false;
            List<string> outLines = new List<string>();
            //寫入資訊
            outLines.Add("var _data = {");
            //逐行讀取CSV中的資料
            while ((strLine = sr.ReadLine()) != null)
            {
                if (isFirst == false)
                {
                    isFirst = true;
                    keys = strLine.Split(",");
                }
                else
                {
                    //{ id_1 : {key1:value1},  }
                    string[] value = strLine.Split(",");
                    string writeStr = "";
                    writeStr += ("\"" + keys[0] + "_" + value[0] + "\":{" );
                    for (int i = 1; i < value.Length; ++i)
                    {
                        writeStr += "\"" + keys[i] + "\":" + "\"" + value[i] + "\",";
                    }
                    writeStr = writeStr.Substring(0, writeStr.Length - 1);
                    writeStr += @"},";
                    outLines.Add(writeStr);
                }
            }
            sr.Close();
            fs.Close();

            outLines.Add("}");

            System.IO.File.WriteAllLines(outPath, outLines);
            Console.WriteLine("輸出路徑:" + outPath);
        }
    }
}

執行效果:

建立個csv檔案:

執行工程,拖入csv,回車:

匯出的js檔案:

規則如下:

1.第一行為表頭,解釋為主key值

2.匯出的是一個字典

key1:是表頭欄位+資料值 "id_1"

key2:照搬表頭

git:https://gitee.com/xuxsheng/Tools/tree/master/CSV2JS