需要一个从ASP.NET创build二进制Excel文件的库任何人都知道一个好的?

如果可能,最好是免费的

我试过使用XML / HTML格式,但我遇到了一个问题,由于Excel的提示用户与安全警告,因为内容不符合MIMEtypes(工作表下载到networking上),没有办法解决这个问题它似乎。

您可以使用以下解决方法来使用xml: Asp.NET Excel电子表格生成结果在Excel中打开时“不同的文件格式比扩展错误”,但电子表格显示正确

基于这个问题,我不确定是否需要旧版本(.xls)版本的支持,但是我最近使用了codeplex的ExcelPackage库来创buildxlsx OOXML,并且它非常适合我的需要。

[更新]

从Codeplex下载ExcelPackage库。 这是用于创buildOpen XML格式文件(docx,xl​​sx,pptx)的System.IO.Packaging的包装。

添加的示例不包含颜色格式化,但是检查网站上的示例以使用模板,或阅读关于Codeplex的qa关于在每个单元格中设置更多样式选项的讨论。

 public void CreateExcel() { FileInfo newFile = new FileInfo(@"C:\temp\test.xlsx"); using (ExcelPackage xlPackage = new ExcelPackage(newFile)) { ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets.Add("People"); // Titles in Column 1 worksheet.Cell(1, 1).Value = "Name"; worksheet.Cell(3, 1).Value = "Tom"; worksheet.Cell(4, 1).Value = "Henry"; worksheet.Column(1).Width = 20; // set column 1 width // Values in column 2 worksheet.Cell(1, 2).Value = "Age"; ExcelCell cell1 = worksheet.Cell(3, 2); cell1.Value = "42"; // Age of Tom ExcelCell cell2 = worksheet.Cell(4, 2); cell2.Value = "19"; // Age of Henry string calcStartAddress = cell1.CellAddress; string calcEndAddress = cell2.CellAddress; worksheet.Cell(5, 2).Formula = string.Format("SUM({0}:{1})",calcStartAddress, calcEndAddress); worksheet.Cell(6, 2).Formula = string.Format("AVERAGE({0}:{1})", calcStartAddress, calcEndAddress); xlPackage.Save(); } } 

[原文解答]

你可以使用ADO.Net。

下载Microsoft Access数据库引擎2010可再发行组件,并检查了这篇文章如何读取/写入与ADO.Net的Excel文件。

只要改变你的连接string

Provider=Microsoft.ACE.OLEDB.12.0; data source=pathtoyourfile; Extended Properties=Excel 12.0;

使用v12和ACE.OLEDB连接而不是Jet.OLEDB。