I have arrays of points that contain series data (x & y). Is there a quick way to output these arrays into an excel file?
Thanks
ClosedXML is a . NET Library for writing and manipulating the Excel 2007+ files. It's available free on GitHub to use for the commercial project.
Output the data to a file, separating the array elements with commas. Then save the file as name.csv
Use FileWriter to output the file.
One of this nice things about range object is that you can assign a two dimensional array to directly to the value property. It is important that the range be the same number of cells as the array has elements.
//using Excel = Microsoft.Office.Interop.Excel;
String[,] myArr = new string[10, 10];
for (int x = 0; x < 10; x++)
{
for (int y = 0; y < 10; y++)
{
myArr[x, y] = "Test " + y.ToString() + x.ToString();
}
}
Excel.Application xlApp = new Excel.Application();
xlApp.Visible = true;
Excel.Workbook wb = xlApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets.get_Item(1);
Excel.Range rng = ws.Cells.get_Resize(myArr.GetLength(0), myArr.GetLength(1));
rng.Value2 = myArr;
If CSV is not satisfactory, you can use Microsoft.Office.Interop.Excel. An example is at How to: Use COM Interop to Create an Excel Spreadsheet (C# Programming Guide).
I would use a third-party xsl export component. This would save you the hassle of excel automation, and you wouldn't have to bundle the excel interop assemblies with your application.
MyXls is a simple open-source component that does excel exports. It should cover your needs just fine.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With