/// <summary> /// 获取文件类型默认名称 /// </summary> /// <param name="filOutputType"></param> /// <returns></returns> public static string GetFileName(FileOutputType filOutputType) { string FileName = ""; switch (filOutputType) { case FileOutputType.Project: FileName = "项目清单"; break; case FileOutputType.Contract: FileName = "合同清单"; break; case FileOutputType.Loan: FileName = "放款清单"; break; case FileOutputType.Supervision: FileName = "代偿清单"; break; case FileOutputType.Premium: FileName = "保费清单"; break; case FileOutputType.Report: FileName = "报表清单"; break; } return(FileName); }
/// <summary> /// Creates the output files. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="items">The parsed items to be used for the creation of the output.</param> /// <param name="fileOutputType">The file type.</param> /// <returns></returns> public bool Create <T>(IEnumerable <T> items, FileOutputType fileOutputType) where T : IExtractable { if (Writers[fileOutputType].TryGetValue(typeof(T).Name, out IWritable writable)) { writable.FileOutputOptions = FileOutputOptions; writable.HotsBuild = HotsBuild; ((IWriter <T>)writable).CreateOutput(items); return(true); } return(false); }
protected RewardPortraitDataWriter(FileOutputType fileOutputType) : base(nameof(RewardPortraitData), fileOutputType) { }
protected VoiceLineDataWriter(FileOutputType fileOutputType) : base(nameof(VoiceLineData), fileOutputType) { }
protected BannerDataWriter(FileOutputType fileOutputType) : base(nameof(BannerData), fileOutputType) { }
protected HeroDataWriter(string type, FileOutputType fileOutputType) : base(type, fileOutputType) { }
protected EmoticonDataWriter(FileOutputType fileOutputType) : base(nameof(EmoticonData), fileOutputType) { }
protected HeroSkinDataWriter(FileOutputType fileOutputType) : base(nameof(HeroSkinData), fileOutputType) { }
protected UnitDataWriter(FileOutputType fileOutputType) : base(nameof(UnitData), fileOutputType) { }
protected PortraitPackDataWriter(FileOutputType fileOutputType) : base(nameof(PortraitPackData), fileOutputType) { }
protected WriterBase(string dataName, FileOutputType fileOutputType) { DataName = dataName.ToLower(); FileOutputType = fileOutputType; }
protected SprayDataWriter(FileOutputType fileOutputType) : base(nameof(SprayData), fileOutputType) { }
protected AnnouncerDataWriter(FileOutputType fileOutputType) : base(nameof(AnnouncerData), fileOutputType) { }
/// <summary> /// Excelを出力する /// </summary> /// <param name="filePath"></param> /// <param name="sheetName"></param> /// <param name="fileOutputType"></param> internal void CreateExcel(string filePath, string sheetName, FileOutputType fileOutputType) { try { IWorkbook workbook = null; ISheet sheet = null; string ext = System.IO.Path.GetExtension(filePath); switch (fileOutputType) { case FileOutputType.追記: if (System.IO.File.Exists(filePath)) { using (var fs = File.OpenRead(filePath)) { workbook = WorkbookFactory.Create(fs); } sheet = workbook.GetSheet(sheetName); } else { if (ext.ToUpper() == ".xls") { workbook = new HSSFWorkbook(); sheet = workbook.CreateSheet(sheetName); } else { workbook = new XSSFWorkbook(); sheet = workbook.CreateSheet(sheetName); } } break; case FileOutputType.書き: if (ext.ToUpper() == ".xls") { workbook = new HSSFWorkbook(); sheet = workbook.CreateSheet(sheetName); } else { workbook = new XSSFWorkbook(); sheet = workbook.CreateSheet(sheetName); } break; } switch (fileOutputType) { case FileOutputType.追記: { int last = sheet.LastRowNum; if (last > 0) { last++; } for (int r = 0; r < ValueList.Count; r++) { IRow row = sheet.CreateRow(r + last); for (int c = 0; c < ValueList[r].Count; c++) { ICell cell = row.CreateCell(c); cell.SetCellValue(ValueList[r][c]); } } using (var fs = File.Create(filePath)) { try { if (workbook is XSSFWorkbook) { XSSFWorkbook b = (XSSFWorkbook)workbook; POIXMLProperties props = b.GetProperties(); props.CoreProperties.Creator = "Macrobo"; } } catch (Exception) {} workbook.Write(fs); workbook.Close(); } } break; case FileOutputType.書き: { for (int r = 0; r < ValueList.Count; r++) { IRow row = sheet.CreateRow(r); for (int c = 0; c < ValueList[r].Count; c++) { ICell cell = row.CreateCell(c); cell.SetCellValue(ValueList[r][c]); } } if (System.IO.File.Exists(filePath)) { System.IO.File.Delete(filePath); } using (var fs = File.Create(filePath)) { try { if (workbook is XSSFWorkbook) { XSSFWorkbook b = (XSSFWorkbook)workbook; POIXMLProperties props = b.GetProperties(); props.CoreProperties.Creator = "Macrobo"; } } catch (Exception) { } workbook.Write(fs); workbook.Close(); } } break; } } catch (Exception ex) { throw Program.ThrowException(ex); } }
protected MatchAwardDataWriter(FileOutputType fileOutputType) : base(nameof(MatchAwardData), fileOutputType) { }
protected WriterBase(string dataName, FileOutputType fileOutputType) { _dataName = dataName.ToLowerInvariant(); _fileOutputType = fileOutputType; }
protected MountDataWriter(FileOutputType fileOutputType) : base(nameof(MountData), fileOutputType) { }
public BehaviorVeterancyDataWriter(FileOutputType fileOutputType) : base(nameof(BehaviorVeterancyData), fileOutputType) { }
/// <summary> /// table生成excel xlsx格式 /// </summary> /// <param name="TableView"></param> /// <param name="filOutputType">生成的文件名</param> /// <param name="FilePath">路径</param> /// <param name="IsStart">是否打开文件</param> /// <returns></returns> public static bool CreateTableViewToXlsx(DevExpress.Xpf.Grid.TableView TableView, FileOutputType filOutputType, string FilePath = null, bool IsStart = true) { try { string FileName = GetFileName(filOutputType); if (FilePath == null) { FilePath = System.Environment.CurrentDirectory + "\\输出文件夹"; } if (!Directory.Exists(FilePath)) { Directory.CreateDirectory(FilePath); } SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = "Excel文件 (*.xlsx)|*.xlsx"; dialog.InitialDirectory = FilePath; dialog.FileName = FileName; dialog.FilterIndex = 1; string saveFileName; if (dialog.ShowDialog() == DialogResult.OK) { saveFileName = dialog.FileName; FileName = Path.GetFileNameWithoutExtension(saveFileName); } else { return(false); } if (File.Exists(saveFileName)) { FileStream fs = null; bool inUse = true; try { fs = new FileStream(saveFileName, FileMode.Open, FileAccess.Read, FileShare.None); inUse = false; } catch { } finally { if (fs != null) { fs.Close(); } } if (inUse) { DevExpress.Xpf.Core.DXMessageBox.Show(filOutputType + "正在被使用,请关闭后重新操作。"); return(false); } } DevExpress.XtraPrinting.XlsxExportOptionsEx option = new DevExpress.XtraPrinting.XlsxExportOptionsEx() { ExportType = DevExpress.Export.ExportType.WYSIWYG, TextExportMode = DevExpress.XtraPrinting.TextExportMode.Text, ShowGridLines = true, }; TableView.ExportToXlsx(saveFileName, option); LOGGER.Info($"生成文件{filOutputType}成功"); if (IsStart) { //保存多个会打开多个文件夹,应让用户自主选择保存位置 //System.Diagnostics.Process.Start("Explorer.exe", filePath); System.Diagnostics.Process.Start(saveFileName); } return(true); } catch (Exception) { LOGGER.Error($"生成{filOutputType}文件失败"); //throw new Exception($"生成{FileName}文件失败"); return(false); } }