public static Task <ExitCode> CreateReport(ExcelReportOptions opts, TextWriter stdErr) { if (!File.Exists(opts.PathToHealthExportFile)) { return(Task.FromResult(ExitCode.ExportFileNotFound(opts.PathToHealthExportFile))); } if (File.Exists(opts.OutputFilename)) { return(Task.FromResult(ExitCode.ExportFileExists(opts.OutputFilename))); } var loader = Usable.Using(new StreamReader(opts.PathToHealthExportFile), reader => ZipUtilities.ReadArchive( reader.BaseStream, entry => entry.FullName == "apple_health_export/export.xml", entry => new XmlReaderExportLoader(entry.Open())) .FirstOrDefault()); var settings = GetSettings(opts, stdErr); var(package, customSheets) = GetCustomSheets(opts, stdErr); using (var excelFile = new ExcelPackage()) using (package) { var timeZone = DateTimeZone.ForOffset(Offset.FromHours(-5)); ExcelReport.BuildReport(loader.Records, loader.Workouts, excelFile.Workbook, settings, timeZone, customSheets); excelFile.SaveAs(new FileInfo(opts.OutputFilename)); } return(Task.FromResult(ExitCode.Success)); }
static void Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); var fileLocation = @"c:\users\jcfuller\Downloads\export.zip"; XDocument export = null; using (var reader = new StreamReader(fileLocation)) { export = ZipUtilities.ReadArchive( reader.BaseStream, entry => entry.FullName == "apple_health_export/export.xml", entry => XDocument.Load(entry.Open())) .FirstOrDefault(); } var settings = Settings.Default; settings.UseConstantNameForMostRecentMonthlySummarySheet = true; settings.UseConstantNameForPreviousMonthlySummarySheet = true; using (var excelFile = new ExcelPackage()) { ExcelReport.BuildReport(export, excelFile.Workbook, settings, Enumerable.Empty <ExcelWorksheet>()); excelFile.SaveAs(new FileInfo(@"c:\users\jcfuller\Desktop\test-edt.xlsx")); } Console.WriteLine("done, press a key"); Console.ReadKey(); }