Newer
Older
ClosedXML / ClosedXML / ClosedXML / ClosedXML_Sandbox / Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ClosedXML.Excel;
using ClosedXML;
using System.Drawing;
using System.IO;
using DocumentFormat.OpenXml.Packaging;

namespace ClosedXML_Sandbox
{
    class Program
    {
        static void Main(string[] args)
        {
            new ClosedXML_Examples.Ranges.UsingTables().Create(@"C:\Excel Files\ForTesting\Sandbox.xlsx");
            //var workbook = new XLWorkbook(@"C:\Excel Files\Created\BasicTable.xlsx");
            //var wb = new XLWorkbook();
            //var c = wb.Worksheets.Add("New").Cell(1, 1);
            //c.Value = "Hello";
            //c.ShareString = false;
            //wb.SaveAs(@"C:\Excel Files\ForTesting\Sandbox.xlsx");
        }

        static void Main_5961(string[] args)
        {
            var fi = new FileInfo(@"C:\Excel Files\ForTesting\Issue_5961.xlsx");
            XLWorkbook wb = new XLWorkbook(fi.FullName);
            {
                IXLWorksheet s = wb.Worksheets.Add("test1");
                s.Cell(1, 1).Value = DateTime.Now.ToString();
            }
            {
                IXLWorksheet s = wb.Worksheets.Add("test2");
                s.Cell(1, 1).Value = DateTime.Now.ToString();
            }
            wb.Save();
            wb = new XLWorkbook(fi.FullName);
            wb.Worksheets.Delete("test1");
            {
                IXLWorksheet s = wb.Worksheets.Add("test3");
                s.Cell(1, 1).Value = DateTime.Now.ToString();
            }
            wb.Save();
            wb = new XLWorkbook(fi.FullName);

            wb.Save();
        }

        static void xMain(string[] args)
        {
            FillStyles();
            List<Double> runningSave = new List<Double>();
            List<Double> runningLoad = new List<Double>();
            List<Double> runningSavedBack = new List<Double>();
            
            foreach (Int32 r in Enumerable.Range(1, 5))
            {
                var wb = new XLWorkbook();
                var startTotal = DateTime.Now;
                foreach (var i in Enumerable.Range(1, 1))
                {
                    var ws = wb.Worksheets.Add("Sheet" + i);
                    foreach (var ro in Enumerable.Range(1, 2000))
                    {
                        foreach (var co in Enumerable.Range(1, 100))
                        {
                            ws.Cell(ro, co).Style = GetRandomStyle();
                            ws.Cell(ro, co).Value = GetRandomValue();
                        }
                        //System.Threading.Thread.Sleep(10);
                    }
                }
                //var start3 = DateTime.Now;
                //foreach (var ws in wb.Worksheets)
                //{
                //    ws.Style = wb.Style;
                //}
                //var end3 = DateTime.Now;
                //Console.WriteLine("Bolded all cells in {0} secs.", (end3 - start3).TotalSeconds);
                
                var start = DateTime.Now;
                wb.SaveAs(@"C:\Excel Files\ForTesting\Benchmark.xlsx");
                var end = DateTime.Now;
                var saved = (end - start).TotalSeconds;
                runningSave.Add(saved);
                Console.WriteLine("Saved in {0} secs.", saved);

                var start1 = DateTime.Now;
                var wb1 = new XLWorkbook(@"C:\Excel Files\ForTesting\Benchmark.xlsx");
                var end1 = DateTime.Now;
                var loaded = (end1 - start1).TotalSeconds;
                runningLoad.Add(loaded);
                Console.WriteLine("Loaded in {0} secs.", loaded);

                var start2 = DateTime.Now;
                //wb1.SaveAs(@"C:\Excel Files\ForTesting\Benchmark_Saved.xlsx");
                var end2 = DateTime.Now;
                var savedBack = (end2 - start2).TotalSeconds;
                runningSavedBack.Add(savedBack);
                Console.WriteLine("Saved back in {0} secs.", savedBack);

                var endTotal = DateTime.Now;
                Console.WriteLine("It all took {0} secs.", (endTotal - startTotal).TotalSeconds);
            }
            Console.WriteLine("-------");
            Console.WriteLine("Avg Save time: {0}", runningSave.Average());
            Console.WriteLine("Avg Load time: {0}", runningLoad.Average());
            Console.WriteLine("Avg Save Back time: {0}", runningSavedBack.Average());
            //Console.ReadKey();
        }

        private static IXLStyle style1;
        private static IXLStyle style2;
        private static IXLStyle style3;
        private static void FillStyles()
        {

            style1 = XLWorkbook.DefaultStyle;
            style1.Font.Bold = true;
            style1.Fill.BackgroundColor = XLColor.Azure;
            style1.Border.BottomBorder = XLBorderStyleValues.Medium;
            style1.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;

            style2 = XLWorkbook.DefaultStyle;
            style2.Font.Italic = true;
            style2.Fill.BackgroundColor = XLColor.Orange;
            style2.Border.LeftBorder = XLBorderStyleValues.Medium;
            style2.Alignment.Vertical = XLAlignmentVerticalValues.Center;

            style3 = XLWorkbook.DefaultStyle;
            style3.Font.FontColor = XLColor.FromColor(Color.Red);
            style3.Fill.PatternColor = XLColor.Blue;
            style3.Fill.PatternType = XLFillPatternValues.DarkTrellis;
            style3.Border.DiagonalBorder = XLBorderStyleValues.Dotted;
        }
        private static IXLStyle GetRandomStyle()
        {

            var val = rnd.Next(1, 4);
            if (val == 1)
            {
                return style1;
            }
            else if (val == 2)
            {
                return style2;
            }
            else
                return style3;

        }
        private static DateTime baseDate = DateTime.Now;
        private static Random rnd = new Random();
        private static object GetRandomValue()
        {
            var val = rnd.Next(1, 7);
            if (val == 1)
                return Guid.NewGuid().ToString().Substring(1, 5);
            else if (val == 2)
                return true;
            else if (val == 3)
                return false;
            else if (val == 4)
                return DateTime.Now;
            else if (val == 5)
                return rnd.Next(1, 1000);
            else
                return (DateTime.Now - baseDate);
        }



        class Person
        {
            public String Name { get; set; }
            public Int32 Age { get; set; }
        }

        // Save defaults to a .config file
    }
}