Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将列表数组写入Excel文件_C#_.net_Excel - Fatal编程技术网

C# 如何将列表数组写入Excel文件

C# 如何将列表数组写入Excel文件,c#,.net,excel,C#,.net,Excel,我有一个包含一些数据的列表数组。目前,我可以在控制台中看到输出,现在正在尝试添加到excel文件。谁能告诉我怎么做吗。下面是创建excel工作表并向其写入内容的代码。但是我如何结合这两个代码在excel中查看输出呢。我尝试了几种组合,但无法写入excel。我是c#的新手。提前谢谢 foreach (Match m in linkParser.Matches(html)) { list.Add(m.Value);

我有一个包含一些数据的列表数组。目前,我可以在控制台中看到输出,现在正在尝试添加到excel文件。谁能告诉我怎么做吗。下面是创建excel工作表并向其写入内容的代码。但是我如何结合这两个代码在excel中查看输出呢。我尝试了几种组合,但无法写入excel。我是c#的新手。提前谢谢

foreach (Match m in linkParser.Matches(html))
                {
                 list.Add(m.Value);
                 Console.WriteLine(m.Value); 
                }



    Excel.Application oApp; // to open excel
                Excel.Worksheet oSheet;
                Excel.Workbook oBook;
                oApp = new Excel.Application();
                oBook = oApp.Workbooks.Add();
                oSheet = (Excel.Worksheet)oBook.Worksheets.get_Item(1);
                string fileTest = "output123.xlsx";
                if (File.Exists(fileTest))
                {
                    File.Delete(fileTest);
                }


                oSheet.Cells[1, 1] = "some value";

                oBook.SaveAs(fileTest);
                oBook.Close();
                oApp.Quit();

在您的参考资料中包括Excel interop。这里有一些快速而肮脏的代码。请提及您正在使用的框架,因为在v4.0中添加了一些新语法,这些语法在v3.5中不起作用

using Excel = Microsoft.Office.Interop.Excel;
现在编写以下代码来创建Excel应用程序

    Excel.Application excel = new Excel.Application();
    excel.Visible = true;
    Excel.Workbook wb = excel.Workbooks.Add();
    Excel.Worksheet sh = wb.Sheets.Add();
    sh.Name = "TestSheet";

    // Write some kind of loop to write your values in sheet. Here i am adding values in 1st columns
    for (int i = 0; i < list.Count; i++)
    {
       sh.Cells[i.ToString(), "A"].Value2 = list[i];

    }
    string filePath = @"C:\output123.xlsx";

    // Save file to filePath
    wb.Save(filePath);

    wb.Close(true);
    excel.Quit(); 
Excel.Application Excel=new Excel.Application();
excel.Visible=true;
Excel.Workbook wb=Excel.Workbooks.Add();
Excel.Worksheet sh=wb.Sheets.Add();
sh.Name=“测试表”;
//写一些循环,在工作表中写下你的值。这里我在第1列中添加值
for(int i=0;i

**PS-我还没有测试代码,但您应该能够通过一些小调整来运行它。

互操作,单元格-有点开销。创建一个空工作簿并将其另存为二进制资源。任何时候你需要创建一个新文件,只要抓取该资源并写入磁盘即可。然后使用
Microsoft.Ace.OleDb.
连接到此Excel文件。您可以像写入数据库表一样写入它。这里有一篇关于这个问题的好文章


请参阅,使用
interop
,尤其是在编写服务器端应用程序时,执行
new Excel.application()
——实际上是打开了一个Excel程序。您不想在服务器上打开任何
Office程序
,除非服务器是专用的,并且您有逻辑可以从卡住的
Office应用程序
中恢复内存。使用
ACE
您只需打开一个连接,这是一种非常精简、内存高效的方法。

有很多库可以使用。您也可以通过编写HTML并将其命名为.xls来将某些内容组合在一起,但它不是真正的Excel文件。一种可能是实现办公产品的自动化。使用PIA创建excel实例,通过它打开/创建工作簿,用数据填充工作表,保存并关闭excel实例。