我知道这个话题已经讨论过,但我认为它有一些不同之处。我有一些对象列表,我想复制到Excel。如果可能的话,我还需要格式化电子表格的外观。我曾经说过,这是某种Excel自动化库,或者允许你从代码中构建电子表格。这样我就可以创建该文档,然后打开它。关于那件事的任何想法?谢谢!
答案 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美元开始不便宜,并且在您想要开发和部署的范围内变得更加昂贵。