private static void exportFile(string excelPath, string outputDir, TableExportFormat fmt) { var data = TableExcelReader.loadFromExcel(excelPath); switch (fmt) { case TableExportFormat.Dat: { var exportPath = Path.Combine(outputDir, string.Format("{0}.exdat", Path.GetFileNameWithoutExtension(excelPath))); TableExcelExportDat.exportExcelFile(data, exportPath); } break; case TableExportFormat.Json: { var exportPath = Path.Combine(outputDir, string.Format("{0}.json", Path.GetFileNameWithoutExtension(excelPath))); TableExcelExportJson.exportExcelFile(data, exportPath); } break; case TableExportFormat.Xml: { var exportPath = Path.Combine(outputDir, string.Format("{0}.xml", Path.GetFileNameWithoutExtension(excelPath))); TableExcelExportXml.exportExcelFile(data, exportPath); } break; case TableExportFormat.Lua: { var exportPath = Path.Combine(outputDir, string.Format("{0}.lua", Path.GetFileNameWithoutExtension(excelPath))); TableExcelExportLua.exportExcelFile(data, exportPath); } break; } }
private void btnGenAll_Clicked(object sender, RoutedEventArgs e) { string excelDir = AppData.Config.ExcelDir; string exportDir = AppData.Config.ExportDir; TableExportFormat fmt = AppData.Config.ExportFormat; if (string.IsNullOrEmpty(excelDir) || !Directory.Exists(excelDir)) { Log.Err("请选择合法的Excel配置目录!"); return; } if (string.IsNullOrEmpty(exportDir) || !Directory.Exists(exportDir)) { Log.Err("请选择合法的导出目录!"); return; } if (fmt == TableExportFormat.Unknown) { Log.Err("请选择导出数据格式!"); return; } var excels = tree.AllExcels.ToList(); if (excels.Count == 0) { Log.Wrn("您选择的配置目录中不包含任何Excel文件! 目录:{0}", excelDir); return; } Log.Msg("================================================="); int succ = 0, failed = 0; foreach (var filePath in excels) { bool succeed = _genSingleFileImpl(filePath, exportDir, fmt); if (succeed) { succ++; } else { failed++; } } if (failed > 0) { Log.Err("========== {0} 个成功, {1} 个失败 ========== ", succ, failed); } else { Log.Suc("========== {0} 个成功 ========== ", succ); } }
private void _genSingleFileImpl(string filePath, string exportDir, TableExportFormat fmt) { Log.Msg("正在分析 {0}", filePath); try { TableExcelData data = TableExcelReader.loadFromExcel(filePath); string errmsg; if (!data.checkUnique(out errmsg)) { Log.Wrn(errmsg); } switch (fmt) { case TableExportFormat.Json: { var exportPath = Path.Combine(exportDir, string.Format("{0}.json", Path.GetFileNameWithoutExtension(filePath))); TableExcelExportJson.exportExcelFile(data, exportPath); } break; /* * case TableExportFormat.Dat: * { * var exportPath = Path.Combine(exportDir, string.Format("{0}.exdat", Path.GetFileNameWithoutExtension(filePath))); * TableExcelExportDat.exportExcelFile(data, exportPath); * } * break; * case TableExportFormat.Xml: * { * var exportPath = Path.Combine(exportDir, string.Format("{0}.xml", Path.GetFileNameWithoutExtension(filePath))); * TableExcelExportXml.exportExcelFile(data, exportPath); * } * break; * case TableExportFormat.Lua: * { * var exportPath = Path.Combine(exportDir, string.Format("{0}.lua", Path.GetFileNameWithoutExtension(filePath))); * TableExcelExportLua.exportExcelFile(data, exportPath); * } * break; */ } //生成.h文件 { var exportPath = Path.Combine(exportDir, string.Format("{0}.h", Path.GetFileNameWithoutExtension(filePath))); var outCppData = CreateTableCpp.toFileData(Path.GetFileNameWithoutExtension(filePath), data.Headers); File.WriteAllBytes(exportPath, Encoding.UTF8.GetBytes(outCppData)); } Log.Msg("生成成功"); } catch (System.Exception ex) { Log.Err(ex.Message); } }
private void _genSingleFileImpl(string filePath, string exportDir, TableExportFormat fmt) { Log.Msg("正在分析 {0}", filePath); try { TableExcelData data = TableExcelReader.loadFromExcel(filePath); string errmsg; if (!data.checkUnique(out errmsg)) { Log.Wrn(errmsg); } switch (fmt) { case TableExportFormat.Dat: { var exportPath = Path.Combine(exportDir, string.Format("{0}.exdat", Path.GetFileNameWithoutExtension(filePath))); TableExcelExportDat.exportExcelFile(data, exportPath); } break; case TableExportFormat.Json: { var exportPath = Path.Combine(exportDir, string.Format("{0}.json", Path.GetFileNameWithoutExtension(filePath))); TableExcelExportJson.exportExcelFile(data, exportPath); } break; case TableExportFormat.Xml: { var exportPath = Path.Combine(exportDir, string.Format("{0}.xml", Path.GetFileNameWithoutExtension(filePath))); TableExcelExportXml.exportExcelFile(data, exportPath); } break; case TableExportFormat.Lua: { var exportPath = Path.Combine(exportDir, string.Format("{0}.lua", Path.GetFileNameWithoutExtension(filePath))); TableExcelExportLua.exportExcelFile(data, exportPath); } break; } Log.Msg("生成成功"); } catch (System.Exception ex) { Log.Err(ex.Message); } }
public void genSingleFile(string filePath, string exportDir, TableExportFormat fmt) { if (!File.Exists(filePath)) { Log.Err("源文件不存在! {0}", filePath); return; } if (!Directory.Exists(exportDir)) { Log.Err("导出目录不存在! {0}", exportDir); return; } if (fmt == TableExportFormat.Unknown) { Log.Err("导出数据格式不合法!"); return; } Log.Msg("================================================="); _genSingleFileImpl(filePath, exportDir, fmt); }
private bool _genSingleFileImpl(string filePath, string exportDir, TableExportFormat fmt) { Log.Msg("----------正在导出 {0}----------", filePath); string exportPath = exportDir; try { TableExcelData data = TableExcelReader.loadFromExcel(filePath); string errmsg; if (!data.checkUnique(out errmsg)) { throw new System.Exception(errmsg); } if (!data.checkDataType(out errmsg)) { throw new System.Exception(errmsg); } switch (fmt) { case TableExportFormat.Dat: { exportPath = Path.Combine(exportDir, string.Format("{0}.exdat", Path.GetFileNameWithoutExtension(filePath))); TableExcelExportDat.exportExcelFile(data, exportPath); } break; case TableExportFormat.Json: { // export json exportPath = Path.Combine(exportDir, string.Format("{0}.json", Path.GetFileNameWithoutExtension(filePath))); TableExcelExportJson.exportExcelFile(data, exportPath); // export cs string fileName = Path.GetFileNameWithoutExtension(filePath); fileName = fileName.Substring(0, 1).ToUpper() + fileName.Substring(1); exportPath = Path.Combine(exportDir, string.Format($"{ fileName }.cs")); TableExcelExportCs.ExportExcelFile(data, exportPath); // export csEx exportPath = Path.Combine(exportDir, string.Format($"{ fileName }.Ex.cs")); if (!File.Exists(exportPath)) { TableExcelExportCsEx.ExportExcelFile(data, exportPath, fileName); } } break; case TableExportFormat.Xml: { exportPath = Path.Combine(exportDir, string.Format("{0}.xml", Path.GetFileNameWithoutExtension(filePath))); TableExcelExportXml.exportExcelFile(data, exportPath); } break; case TableExportFormat.Lua: { exportPath = Path.Combine(exportDir, string.Format("{0}.lua", Path.GetFileNameWithoutExtension(filePath))); if (AppData.Config.FitUnity3D == true) { exportPath += ".txt"; } TableExcelExportLua.exportExcelFile(data, exportPath); } break; } Log.Msg("----------导出成功 {0} ----------", exportPath); return(true); } catch (System.Exception ex) { Log.Err(ex.Message); Log.Err("----------导出失败 {0} ----------", exportPath); return(false); } }
public bool ExportTable(ddl worker, Type tabletype, string dest_directory, TableExportFormat format, string delimiter) { try { if (format == TableExportFormat.RawDump) { string dest_file = Path.Combine(dest_directory, tabletype.Name + ".shermtable"); using (var comp = new FileStream(dest_file, FileMode.Create, FileAccess.Write)) { /* export a single table to the destination directory */ ITable table = (ITable)Activator.CreateInstance(tabletype); using (GZipStream zip = new GZipStream(comp, CompressionMode.Compress)) { table.SerializeContent(worker, zip); comp.Flush(); } } } else if (format == TableExportFormat.CSV) { /* [dlatikay 20180102] default delimiter is the tabulator */ ITable table = (ITable)Activator.CreateInstance(tabletype); if (String.IsNullOrWhiteSpace(delimiter)) { delimiter = "\t"; } using (var t = table.DbSelectAll(worker)) { using (var comp = new FileStream(dest_directory, FileMode.Create, FileAccess.Write)) { using (var sw = new StreamWriter(comp, System.Text.UnicodeEncoding.UTF8)) { var first = true; var any = false; foreach (DataColumn col in t.Columns) { if (first) { first = false; } else { sw.Write(delimiter); } sw.Write(col.ColumnName); any = true; } if (any) { sw.Write(Environment.NewLine); } foreach (DataRow dr in t.Rows) { any = false; first = true; foreach (DataColumn col in t.Columns) { if (first) { first = false; } else { sw.Write(delimiter); } sw.Write(dr[col.ColumnName].ToString()); any = true; } if (any) { sw.Write(Environment.NewLine); } } } } } } else { throw new NotSupportedException("Table/view export format \"" + format.ToString() + "\""); } /* succeeded */ return(true); } catch (Exception ex) { /* some error */ OnLoadError(tabletype.Name, ex.ToString()); return(false); } }