static async Task Main(string[] args) { try { //EPPlus 5 uses a dual licens model. This requires you to specifiy the License you are using to be able to use the library. //This sample sets the LicenseContext in the appsettings.json file. An alternative is the commented row below. //ExcelPackage.LicenseContext = LicenseContext.NonCommercial; //See https://epplussoftware.com/Developers/LicenseException for more info. CultureInfo.CurrentCulture = new CultureInfo("zh-tw"); string connectionStr = "Data Source=EPPlusSample.sqlite;Version=3;"; //Set the output directory to the SampleApp folder where the app is running from. FileOutputUtil.OutputDir = new DirectoryInfo($"{AppDomain.CurrentDomain.BaseDirectory}SampleApp"); // Sample 1 - simply creates a new workbook from scratch // containing a worksheet that adds a few numbers together Console.WriteLine("Running sample 1"); string sample1Path = GettingStartedSample.Run(); Console.WriteLine("Sample 1 created: {0}", sample1Path); Console.WriteLine(); // Sample 2 - simply reads some values from the file generated by sample 1 // and outputs them to the console Console.WriteLine("Running sample 2"); ReadWorkbookSample.Run(); Console.WriteLine(); //Sample 3 - Load and save using async methods Console.WriteLine("Running sample 3-Async-Await"); await UsingAsyncAwaitSample.RunAsync(connectionStr); Console.WriteLine("Sample 3 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); //Sample 4 - Shows a few ways to load data (Datatable, IEnumerable and more). Console.WriteLine("Running sample 4"); LoadingDataWithTablesSample.Run(); Console.WriteLine("Sample 4 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); //Sample 5 Loads two csv files into tables and creates an area chart and a Column/Line chart on the data. //This sample also shows how to use a secondary axis. Console.WriteLine("Running sample 5"); var output = await ImportAndExportCsvFilesSample.Run(); Console.WriteLine("Sample 5 created: {0}", output); Console.WriteLine(); //Sample 6 Calculate - Shows how to calculate formulas in the workbook. Console.WriteLine("Sample 6 - Calculate formulas"); CalculateFormulasSample.Run(); Console.WriteLine("Sample 6 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); //Sample 7 //Open sample 1 and add a pie chart. Console.WriteLine("Running sample 7 - Open a workbook and add data and a pie chart"); output = OpenWorkbookAndAddDataAndChartSample.Run(); Console.WriteLine("Sample 7 created:", output); Console.WriteLine(); // Sample 8 - creates a workbook from scratch //Shows how to use Ranges, Styling, Namedstyles and Hyperlinks Console.WriteLine("Running sample 8"); output = SalesReportFromDatabase.Run(connectionStr); Console.WriteLine("Sample 8 created: {0}", output); Console.WriteLine(); //Sample 9 //This sample shows the performance capabilities of the component and shows sheet protection. //Load X(param 2) rows with five columns Console.WriteLine("Running sample 9"); output = PerformanceAndProtectionSample.Run(65534); Console.WriteLine("Sample 9 created:", output); Console.WriteLine(); //Sample 10 - Linq //Opens Sample 9 and perform some Linq queries Console.WriteLine("Running sample 10-Linq"); ReadDataUsingLinq.Run(); Console.WriteLine(); //Sample 11 - Conditional Formatting Console.WriteLine("Running sample 11"); ConditionalFormatting.Run(); Console.WriteLine("Sample 11 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); //Sample 12 - Data validation Console.WriteLine("Running sample 12"); output = DataValidationSample.Run(); Console.WriteLine("Sample 12 created {0}", output); Console.WriteLine(); //Sample 13 - Filter Console.WriteLine("Running sample 13-Filter"); await Filter.RunAsync(connectionStr); Console.WriteLine("Sample 13 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); //Sample 14 - Shapes & Images Console.WriteLine("Running sample 14-Shapes & Images"); ShapesAndImagesSample.Run(); Console.WriteLine("Sample 14 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); //Sample 15 - Themes and Chart styling Console.WriteLine("Running sample 15-Theme and Chart styling"); //Run the sample with the default office theme await ChartsAndThemesSample.RunAsync(connectionStr, FileOutputUtil.GetFileInfo("15-ChartsAndThemes.xlsx"), null); //Run the sample with the integral theme. Themes can be exported as thmx files from Excel and can then be applied to a package. await ChartsAndThemesSample.RunAsync(connectionStr, FileOutputUtil.GetFileInfo("15-ChartsAndThemes-IntegralTheme.xlsx"), FileInputUtil.GetFileInfo("15-ChartsAndThemes", "integral.thmx")); Console.WriteLine("Sample 15 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); //Sample 16 - Shows how to add sparkline charts. Console.WriteLine("Running sample 16-Sparklines"); SparkLinesSample.Run(); Console.WriteLine("Sample 16 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); // Sample 17 - Creates a workbook based on a template. // Populates a range with data and set the series of a linechart. Console.WriteLine("Running sample 17"); output = FxReportFromDatabase.Run(connectionStr); Console.WriteLine("Sample 17 created: {0}", output); Console.WriteLine(); //Sample 18 - Pivottables Console.WriteLine("Running sample 18"); output = PivotTablesSample.Run(connectionStr); //TODO: Fix database Console.WriteLine("Sample 18 created {0}", output); Console.WriteLine(); //Sample 19 Swedish Quiz : Shows Encryption, workbook- and worksheet protection. Console.WriteLine("Running sample 19"); DrawingsSample.Run(); Console.WriteLine("Sample 19 created: {0}", FileOutputUtil.OutputDir.FullName); Console.WriteLine(); //Sample 20 //Creates an advanced report on a directory in the filesystem. //Parameter 2 is the directory to report. Parameter 3 is how deep the scan will go. Parameter 4 Skips Icons if set to true (The icon handling is slow) //This example demonstrates how to use outlines, tables,comments, shapes, pictures and charts. Console.WriteLine("Running sample 20"); output = CreateAFileSystemReport.Run(new DirectoryInfo(System.Reflection.Assembly.GetEntryAssembly().Location).Parent, 5, true); Console.WriteLine("Sample 20 created:", output); Console.WriteLine(); //Sample 21 - Shows how to work with macro-enabled workbooks(VBA). Console.WriteLine("Running sample 21-VBA"); WorkingWithVbaSample.Run(); Console.WriteLine("Sample 21 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); //Sample 22 - Ignore cell errors using the IngnoreErrors Collection Console.WriteLine("Running sample 22-Suppress Errors"); IgnoreErrorsSample.Run(); Console.WriteLine("Sample 22 created {0}", FileOutputUtil.OutputDir.Name); Console.WriteLine(); } catch (Exception ex) { Console.WriteLine("Error: {0}", ex.Message); } var prevColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Genereted sample workbooks can be found in {FileOutputUtil.OutputDir.FullName}"); Console.ForegroundColor = prevColor; //Open the output folder Process.Start(FileOutputUtil.OutputDir.FullName); Console.WriteLine(); Console.WriteLine("Press the return key to exit..."); Console.ReadKey(); }