You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
usingSpreadSheetTasks;usingSystem.Data;vardt=newDataTable();dt.Columns.Add("Name",typeof(string));dt.Columns.Add("Age",typeof(int));dt.Rows.Add("Alice",30);dt.Rows.Add("Bob",25);using(varwriter=newXlsxWriter("output.xlsx"))// or XlsbWriter{writer.AddSheet("People");writer.WriteSheet(dt.CreateDataReader());}
usingSpreadSheetTasks;using(varreader=newXlsxOrXlsbReadOrEdit()){reader.Open("data.xlsx");reader.ActualSheetName="Sheet1";while(reader.Read()){// Use typed getters for general usestringname=reader.GetString(0);longvalue=reader.GetInt64(1);// Use GetExcelDataType to inspect cell typeExcelDataTypetype=reader.GetExcelDataType(2);// High-performance escape hatch (check type first!)if(type==ExcelDataType.Double){doubleraw=reader.GetNativeValue(2).doubleValue;}}}
usingSpreadSheetTasks;usingSystem.Data;using(varreader=newXlsxOrXlsbReadOrEdit()){reader.Open("existing.xlsx",updateMode:true);varnewData=newDataTable();newData.Columns.Add("Product",typeof(string));newData.Columns.Add("Revenue",typeof(decimal));newData.Rows.Add("Widget",50000m);// Replace data in a sheetstringrange=reader.ReplaceSheetData("Sheet1",newData.CreateDataReader());// Update pivot table data source referencereader.ReplacePivotTableDim("PivotTable1",range);}
Write to existing Stream (XlsxWriter.WriteToExisting)
usingSpreadSheetTasks;usingSystem.Data;usingSystem.IO;usingSystem.IO.Compression;// Open an existing xlsx as a ZipArchive and write into a sheet streamusing(vararchive=ZipFile.Open("existing.xlsx",ZipArchiveMode.Update)){varentry=archive.GetEntry("xl/worksheets/sheet1.xml");usingvarwriter=newStreamWriter(entry.Open());vardt=newDataTable();dt.Columns.Add("Name",typeof(string));dt.Rows.Add("Alice");introwsWritten=XlsxWriter.WriteToExisting(writer,dt.CreateDataReader());}
Stream writer with custom buffer size
usingSpreadSheetTasks;usingSystem.Data;// Larger buffer for better write throughput on large filesusing(varwriter=newXlsxWriter("large.xlsx",bufferSize:65536)){writer.AddSheet("Data");vardt=newDataTable();dt.Columns.Add("Col",typeof(string));for(inti=0;i<100_000;i++)dt.Rows.Add($"Row{i}");writer.WriteSheet(dt.CreateDataReader());}