csv2js csv轉成js程式碼
阿新 • • 發佈:2020-12-22
開發目的:
同事比較喜歡使用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:照搬表頭