Created
April 1, 2023 21:18
-
-
Save jahav/e9d8c5cf2830fb1754101cb0a66f7e36 to your computer and use it in GitHub Desktop.
Test file for speedup of saving 0.100 vs 0.101
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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