有没有快速的方法将数组导出到使用C#的Excel文件?

我有包含系列数据(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互操作来创buildExcel电子表格(C#编程指南) 。

我会使用第三方的xsl导出组件。 这将为您节省Excel自动化的麻烦,而且您不必将Excel Interop程序集与您的应用程序捆绑在一起。

MyXls是一个简单的开放源代码组件,可以很好地导出数据。 它应该涵盖您的需求就好了。

你可以使用Ado.net来完成。 下面我的代码假设在文件夹C:\ Stuff \中有一个名为Book1.xls的Excel电子表格,并且电子表格中已经存在名为Sheet1的工作表中的标题ID,名称和网站。

 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(); } } }