Skip to content

Instantly share code, notes, and snippets.

@jahav
Created April 1, 2023 21:18
Show Gist options
  • Save jahav/e9d8c5cf2830fb1754101cb0a66f7e36 to your computer and use it in GitHub Desktop.
Save jahav/e9d8c5cf2830fb1754101cb0a66f7e36 to your computer and use it in GitHub Desktop.
Test file for speedup of saving 0.100 vs 0.101
using System;
using System.Data;
using System.Diagnostics;
using ClosedXML.Excel;
namespace ClosedXML.Sandbox
{
internal static class Program
{
private static void Main(string[] args)
{
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("A", typeof(String));
DataColumn dc2 = new DataColumn("B", typeof(String));
DataColumn dc3 = new DataColumn("C", typeof(String));
DataColumn dc4 = new DataColumn("D", typeof(String));
DataColumn dc5 = new DataColumn("E", typeof(String));
DataColumn dc6 = new DataColumn("F", typeof(String));
DataColumn dc7 = new DataColumn("G", typeof(String));
DataColumn dc8 = new DataColumn("H", typeof(String));
DataColumn dc9 = new DataColumn("I", typeof(String));
DataColumn dc10 = new DataColumn("J", typeof(String));
DataColumn dc11 = new DataColumn("K", typeof(String));
DataColumn dc12 = new DataColumn("L", typeof(String));
DataColumn dc13 = new DataColumn("M", typeof(String));
DataColumn dc14 = new DataColumn("N", typeof(String));
DataColumn dc15 = new DataColumn("O", typeof(String));
DataColumn dc16 = new DataColumn("P", typeof(String));
DataColumn dc17 = new DataColumn("Q", typeof(String));
DataColumn dc18 = new DataColumn("R", typeof(String));
DataColumn dc19 = new DataColumn("S", typeof(String));
DataColumn dc20 = new DataColumn("T", typeof(String));
DataColumn dc21 = new DataColumn("U", typeof(String));
DataColumn dc22 = new DataColumn("V", typeof(String));
DataColumn dc23 = new DataColumn("W", typeof(String));
DataColumn dc24 = new DataColumn("X", typeof(String));
DataColumn dc25 = new DataColumn("Y", typeof(String));
DataColumn dc26 = new DataColumn("Z", typeof(String));
DataColumn dc27 = new DataColumn("AA", typeof(String));
DataColumn dc28 = new DataColumn("AB", typeof(String));
DataColumn dc29 = new DataColumn("AC", typeof(String));
DataColumn dc30 = new DataColumn("AD", typeof(String));
DataColumn dc31 = new DataColumn("AE", typeof(String));
DataColumn dc32 = new DataColumn("AF", typeof(String));
DataColumn dc33 = new DataColumn("AG", typeof(String));
DataColumn dc34 = new DataColumn("AH", typeof(String));
DataColumn dc35 = new DataColumn("AI", typeof(String));
DataColumn dc36 = new DataColumn("AJ", typeof(String));
DataColumn dc37 = new DataColumn("AK", typeof(String));
DataColumn dc38 = new DataColumn("AL", typeof(String));
DataColumn dc39 = new DataColumn("AM", typeof(String));
DataColumn dc40 = new DataColumn("AN", typeof(String));
DataColumn dc41 = new DataColumn("AO", typeof(String));
DataColumn dc42 = new DataColumn("AP", typeof(String));
DataColumn dc43 = new DataColumn("AQ", typeof(String));
DataColumn dc44 = new DataColumn("AR", typeof(String));
DataColumn dc45 = new DataColumn("AS", typeof(String));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Columns.Add(dc4);
dt.Columns.Add(dc5);
dt.Columns.Add(dc6);
dt.Columns.Add(dc7);
dt.Columns.Add(dc8);
dt.Columns.Add(dc9);
dt.Columns.Add(dc10);
dt.Columns.Add(dc11);
dt.Columns.Add(dc12);
dt.Columns.Add(dc13);
dt.Columns.Add(dc14);
dt.Columns.Add(dc15);
dt.Columns.Add(dc16);
dt.Columns.Add(dc17);
dt.Columns.Add(dc18);
dt.Columns.Add(dc19);
dt.Columns.Add(dc20);
dt.Columns.Add(dc21);
dt.Columns.Add(dc22);
dt.Columns.Add(dc23);
dt.Columns.Add(dc24);
dt.Columns.Add(dc25);
dt.Columns.Add(dc26);
dt.Columns.Add(dc27);
dt.Columns.Add(dc28);
dt.Columns.Add(dc29);
dt.Columns.Add(dc30);
dt.Columns.Add(dc31);
dt.Columns.Add(dc32);
dt.Columns.Add(dc33);
dt.Columns.Add(dc34);
dt.Columns.Add(dc35);
dt.Columns.Add(dc36);
dt.Columns.Add(dc37);
dt.Columns.Add(dc38);
dt.Columns.Add(dc39);
dt.Columns.Add(dc40);
dt.Columns.Add(dc41);
dt.Columns.Add(dc42);
dt.Columns.Add(dc43);
dt.Columns.Add(dc44);
dt.Columns.Add(dc45);
for (int i = 0; i < 100000; i++)
{
DataRow dr = dt.NewRow();
dr[0] = "Sample text to test";
dr[1] = "Sample text to test";
dr[2] = "Sample text to test";
dr[3] = "Sample text to test";
dr[4] = "Sample text to test";
dr[5] = "Sample text to test";
dr[6] = "Sample text to test";
dr[7] = "Sample text to test";
dr[8] = "Sample text to test";
dr[9] = "Sample text to test";
dr[10] = 100000*i + 10;
dr[11] = 100000*i + 11;
dr[12] = 100000*i + 12;
dr[13] = 100000*i + 13;
dr[14] = 100000*i + 14;
dr[15] = 100000*i + 15;
dr[16] = 100000*i + 16;
dr[17] = 100000*i + 17;
dr[18] = 100000*i + 18;
dr[19] = 100000*i + 19;
dr[20] = 100000 * i + 20;
dr[21] = true;
dr[22] = true;
dr[23] = true;
dr[24] = true;
dr[25] = true;
dr[26] = false;
dr[27] = false;
dr[28] = false;
dr[29] = false;
dr[30] = false;
dr[31] = XLError.DivisionByZero;
dr[32] = XLError.NoValueAvailable;
dr[33] = XLError.IncompatibleValue;
dr[34] = DateTime.FromOADate(i);
dr[35] = DateTime.FromOADate(i);
dr[36] = DateTime.FromOADate(i);
dr[37] = TimeSpan.FromSeconds(i);
dr[38] = TimeSpan.FromSeconds(i);
dr[39] = $"Sample text to test{i}a";
dr[40] = $"Sample text to test{i}b";
dr[42] = $"Sample text to test{i}c";
dr[41] = $"Sample text to test{i}d";
dr[43] = $"Sample text to test{i}e";
dr[44] = $"Sample text to test{i}f";
dt.Rows.Add(dr);
}
XLWorkbook wb = new XLWorkbook();
var ws = wb.Worksheets.Add(dt, "Sheet1");
ws.Table(0).ShowAutoFilter = false;
ws.Table(0).Theme = XLTableTheme.None;
Console.WriteLine("Start saving");
var sw = Stopwatch.StartNew();
wb.SaveAs(@"C:\temp\large.xlsx", false);
sw.Stop();
Console.WriteLine("Finished saving {0}", sw.Elapsed);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment