/// <summary> /// 根据命令行参数,执行Excel数据导出工作 /// </summary> /// <param name="options">命令行参数</param> private static void Run(Options options) { //-- Excel File string excelPath = options.ExcelPath; string excelName = Path.GetFileNameWithoutExtension(options.ExcelPath); //-- Header int header = options.HeaderRows; //-- Encoding Encoding cd = new UTF8Encoding(false); if (options.Encoding != "utf8-nobom") { foreach (EncodingInfo ei in Encoding.GetEncodings()) { Encoding e = ei.GetEncoding(); if (e.HeaderName == options.Encoding) { cd = e; break; } } } //-- Date Format string dateFormat = options.DateFormat; //-- Export path string exportPath; if (options.JsonPath != null && options.JsonPath.Length > 0) { exportPath = options.JsonPath; } else { exportPath = Path.ChangeExtension(excelPath, ".json"); } //-- Load Excel ExcelLoader excel = new ExcelLoader(excelPath, header); //-- export JsonExporter exporter = new JsonExporter(excel, options.Lowcase, options.ExportArray, dateFormat, options.ForceSheetName, header, options.ExcludePrefix, options.CellJson); exporter.SaveToFile(exportPath, cd); //-- 生成C#定义文件 if (options.CSharpPath != null && options.CSharpPath.Length > 0) { CSDefineGenerator generator = new CSDefineGenerator(excelName, excel, options.ExcludePrefix); generator.SaveToFile(options.CSharpPath, cd); } }
/// <summary> /// 根据命令行参数,执行Excel数据导出工作 /// </summary> /// <param name="options">命令行参数</param> private static void Run(Options options) { string excelPath = options.ExcelPath; int header = options.HeaderRows; // 加载Excel文件 using (FileStream excelFile = File.Open(excelPath, FileMode.Open, FileAccess.Read)) { // Reading from a OpenXml Excel file (2007 format; *.xlsx) IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(excelFile); // The result of each spreadsheet will be created in the result.Tables excelReader.IsFirstRowAsColumnNames = true; DataSet book = excelReader.AsDataSet(); // 数据检测 if (book.Tables.Count < 1) { throw new Exception("Excel文件中没有找到Sheet: " + excelPath); } // 取得数据 DataTable sheet = book.Tables[0]; if (sheet.Rows.Count <= 0) { throw new Exception("Excel Sheet中没有数据: " + excelPath); } //-- 确定编码 Encoding cd = new UTF8Encoding(false); if (options.Encoding != "utf8-nobom") { foreach (EncodingInfo ei in Encoding.GetEncodings()) { Encoding e = ei.GetEncoding(); if (e.EncodingName == options.Encoding) { cd = e; break; } } } //-- 导出JSON文件 if (options.JsonPath != null && options.JsonPath.Length > 0) { JsonExporter exporter = new JsonExporter(sheet, header, options.Lowcase); exporter.SaveToFile(options.JsonPath, cd, options.ExportArray); } //-- 导出SQL文件 if (options.SQLPath != null && options.SQLPath.Length > 0) { SQLExporter exporter = new SQLExporter(sheet, header); exporter.SaveToFile(options.SQLPath, cd); } //-- 生成C#定义文件 if (options.CSharpPath != null && options.CSharpPath.Length > 0) { string excelName = Path.GetFileName(excelPath); CSDefineGenerator exporter = new CSDefineGenerator(sheet); exporter.ClassComment = string.Format("// Generate From {0}", excelName); exporter.SaveToFile(options.CSharpPath, cd); } } }
/// <summary> /// 根据命令行参数,执行Excel数据导出工作 /// </summary> /// <param name="options">命令行参数</param> private static void Run(Options options) { string excelPath = options.ExcelPath; int header = options.HeaderRows; // 加载Excel文件 using (FileStream excelFile = File.Open(excelPath, FileMode.Open, FileAccess.Read)) { // Reading from a OpenXml Excel file (2007 format; *.xlsx) IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(excelFile); // The result of each spreadsheet will be created in the result.Tables excelReader.IsFirstRowAsColumnNames = true; DataSet book = excelReader.AsDataSet(); // 数据检测 if (book.Tables.Count < 1) { throw new Exception("Excel文件中没有找到Sheet: " + excelPath); } // 取得数据 DataTable sheet = book.Tables[0]; if (sheet.Rows.Count <= 0) { throw new Exception("Excel Sheet中没有数据: " + excelPath); } //-- 确定编码 Encoding cd = new UTF8Encoding(false); if (options.Encoding != "utf8-nobom") { foreach (EncodingInfo ei in Encoding.GetEncodings()) { Encoding e = ei.GetEncoding(); if (e.EncodingName == options.Encoding) { cd = e; break; } } } //-- 导出JSON文件 if (options.JsonPath != null && options.JsonPath.Length > 0) { JsonExporter exporter = new JsonExporter(sheet, header, options.Lowcase); exporter.SaveToFile(options.JsonPath, cd); } //-- 导出SQL文件 if (options.SQLPath != null && options.SQLPath.Length > 0) { SQLExporter exporter = new SQLExporter(sheet, header); exporter.SaveToFile(options.SQLPath, cd); } //-- 生成C#定义文件 if (options.CSharpPath != null && options.CSharpPath.Length > 0) { string excelName = Path.GetFileName(excelPath); CSDefineGenerator exporter = new CSDefineGenerator(sheet); exporter.ClassComment = string.Format("// Generate From {0}", excelName); exporter.SaveToFile(options.CSharpPath, cd); } } }