Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

is there quick way to export an array to Excel file using C#?

Tags:

c#

excel

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

like image 775
mustafabar Avatar asked Jun 22 '09 07:06

mustafabar


People also ask

Is ClosedXML free?

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.


4 Answers

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.

like image 93
Sev Avatar answered Oct 10 '22 23:10

Sev


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;
like image 21
Oorang Avatar answered Oct 11 '22 00:10

Oorang


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).

like image 4
Matthew Flaschen Avatar answered Oct 10 '22 22:10

Matthew Flaschen


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.

like image 2
Rune Grimstad Avatar answered Oct 11 '22 00:10

Rune Grimstad