从C#导出数据并将数据格式化为Excel

时间:2012-06-26 10:41:23

标签: c# excel

我知道这个话题已经讨论过,但我认为它有一些不同之处。我有一些对象列表,我想复制到Excel。如果可能的话,我还需要格式化电子表格的外观。我曾经说过,这是某种Excel自动化库,或者允许你从代码中构建电子表格。这样我就可以创建该文档,然后打开它。关于那件事的任何想法?谢谢!

3 个答案:

答案 0 :(得分:4)

如果您创建的典型Excel文档不使用Excel的高级功能,则NPOI http://npoi.codeplex.com/http://code.google.com/p/npoi/等库可以很好地呈现。或者另一个名为ExcelLibrary。我个人非常轻松地使用了NPOI库。服务器端办公自动化存在一些复杂性/问题:http://support.microsoft.com/kb/257757。 NPOI适用于生成xls(2007年之前的Excel版本)文件。如果您很高兴生成xslx(2007年后的Excel版本)文件,请使用OpenXML - 它几乎可以支持您在xslx文档中可能需要的所有功能

答案 1 :(得分:0)

您可以从C#将数据导出到Excel,是否可以向我们提供有关您要导出的对象的更多信息,例如,如果您需要从Listview创建和打开Excel文档,这就是您的方式做到这一点:

首先,您需要添加Microsoft.Office.Interop.Excel作为项目的引用,并将以下程序集添加到您的代码中:using Excel = Microsoft.Office.Interop.Excel;

   //This would convert the listview1 content to Excel document and create the file in the given path        
    private void CreateExcelFromListview()
    {
        ListViewExport.ListViewToCsv(listView1, "C:\\test.csv", true);
        OpenInExcel("C:\\test.csv");
    }

    //This would open the document on screen
    public void OpenInExcel(string strFileName)
    {
        try
        {
            new Excel.Application {Visible = true}.Workbooks.Open(strFileName);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

答案 2 :(得分:0)

如果您对目前建议的OpenXML或其他库没有兴趣,您可能会关注Aspose.Cells。我已经在两个不同的项目中使用它没有问题(它确实有一些颜色格式怪癖,但它们可以解决)。

它允许您读取和构建Excel文件(在所有版本中),在单元格和堆中声明公式,并且在终端工作站上不需要Excel。

然而,对于您所声明的需求可能有点过分 - 从<9000美元开始不便宜,并且在您想要开发和部署的范围内变得更加昂贵。