public async Task ExportAsync(string filename) { this.ValidateExport(filename); var path = PathUtility.GetFullPath(filename, this.CommandContext.BaseDirectory); var authentication = this.CommandContext.GetAuthentication(this); var dataBase = this.DataBaseContext.Dispatcher.Invoke(() => this.DataBaseContext[this.DataBaseName]); var revision = dataBase.Dispatcher.Invoke(() => this.Revision ?? dataBase.DataBaseInfo.Revision); var dataSet = await dataBase.GetDataSetAsync(authentication, CremaDataSetFilter.Default, revision); var settings = new SpreadsheetWriterSettings() { OmitAttribute = this.OmitAttribute, OmitSignatureDate = this.OmitSignatureDate, OmitType = DataSetTypeProperties.TableOnly, OmitTable = DataSetTypeProperties.TypeOnly, }; if (this.SaveEach == true) { settings.Sort = this.Comparison; } settings.Properties.Add(nameof(Revision), revision); settings.Properties.Add(nameof(FilterProperties.FilterExpression), FilterProperties.FilterExpression); settings.Properties.Add(nameof(DataBaseName), this.DataBaseName); if (this.SaveEach == true) { this.WriteDataSetToDirectory(dataSet, path, settings); } else { this.WriteDataSet(dataSet, path, settings); } }
public void Export(string itemPath, CremaDataSet dataSet) { if (dataSet.Tables.Any() == false) { return; } var spreadsheetWriterSettings = new SpreadsheetWriterSettings() { OmitAttribute = this.settings.OmitAttribute, OmitSignatureDate = this.settings.OmitSignatureDate, }; var writer = new SpreadsheetWriter(dataSet, spreadsheetWriterSettings); var filename = this.OutputPath; if (this.settings.IsSeparable == true) { var outputPath = itemPath.Trim(PathUtility.SeparatorChar).Replace(PathUtility.SeparatorChar, '.'); if (outputPath == string.Empty) { outputPath = this.cremaAppHost.DataBaseName; } if (this.settings.IsIncludeDate) { //------------------------------------------------------ // TableName_2017-02-17_05_11.xlsx string szDate = DateTime.Now.ToString($"{this.settings.OutputDateFormat}"); filename = FileUtility.Prepare(this.outputPath, $"{outputPath}_{szDate}.xlsx"); } else { filename = FileUtility.Prepare(this.outputPath, outputPath + ".xlsx"); } } using (var stream = new FileStream(filename, FileMode.Create)) { writer.Write(stream); } this.configs.Commit(this.settings); this.configs.Commit(this); }
private void WriteTables(CremaDataSet dataSet, string filename) { var path = Path.Combine(this.CommandContext.BaseDirectory, filename); var settings = new SpreadsheetWriterSettings() { OmitAttribute = this.OmitAttribute, OmitSignatureDate = this.OmitSignatureDate, Tags = (TagInfo)TagsProperties.Tags, }; var progress = new ConsoleProgress(this.Out) { Style = ConsoleProgressStyle.None }; using (var writer = new SpreadsheetWriter(dataSet, settings)) { writer.Write(path, progress); } this.Out.WriteLine($"export: \"{path}\""); }