簡體   English   中英

有沒有使用C#將數組導出到Excel文件的快捷方法?

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

我有包含系列數據(x和y)的點數組。 有沒有快速的方法將這些數組輸出到excel文件?

謝謝

將數據輸出到文件,用逗號分隔數組元素。 然后將文件另存為name.csv

使用FileWriter輸出文件。

關於范圍對象的一個​​好處是,您可以將二維數組直接指定給value屬性。 該范圍是相同數量的細胞作為陣列具有元件是很重要的。

        //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;

如果CSV不滿意,您可以使用Microsoft.Office.Interop.Excel。 示例是如何:使用COM Interop創建Excel電子表格(C#編程指南)

我會使用第三方xsl導出組件。 這樣可以省去excel自動化的麻煩,而且您不必將excel互操作程序集與應用程序捆綁在一起。

MyXls是一個簡單的開源組件,可以實現卓越的導出。 它應該可以滿足您的需求。

你可以使用Ado.net做到這一點。 我的代碼假設在文件夾C:\\ Stuff \\中有一個名為Book1.xls的Excel電子表格,並且電子表格中有標題ID,名稱,網站已存在於名為Sheet1的工作表中。

private void button1_Click(object sender, EventArgs e)
    {
        string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
                    Data Source=C:\Stuff\Book1.xls;Extended Properties=
                    ""Excel 8.0;HDR=YES;""";

        using (OleDbConnection conn = new OleDbConnection(connectionString))
        {

            using (OleDbCommand command = conn.CreateCommand())
            {
                command.CommandText = @"INSERT INTO [Sheet1$] (ID, Name, Site) VALUES(1, ""Phil"", ""StackOverflow.com"")";
                conn.Open();
                command.ExecuteNonQuery();
            }
        }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM