C#和Excel文件

C#和Excel文件,c#,excel,file,oledb,export-to-excel,C#,Excel,File,Oledb,Export To Excel,我需要创建一个可以读取/写入Excel文件的程序。我应该使用OleDB还是使用Excel对象?两者的优点是什么?从哪里开始实施这一点呢?可能免费组件“”的功能对您来说已经足够了?计算机上不需要安装Excel。我使用它并且很满意。我最近不得不这么做,并发现NPOI()是最好的选择,尤其是当我需要生成二进制.xls文件时,它不会给客户端带来任何关于文件类型的混乱错误 有关更多信息,请参阅。 您还将发现,由于它是现有框架的一个端口,因此可以为适用于该端口的原始框架提供大量帮助。Excel Automa

我需要创建一个可以读取/写入Excel文件的程序。我应该使用OleDB还是使用Excel对象?两者的优点是什么?从哪里开始实施这一点呢?

可能免费组件“”的功能对您来说已经足够了?计算机上不需要安装Excel。我使用它并且很满意。

我最近不得不这么做,并发现NPOI()是最好的选择,尤其是当我需要生成二进制.xls文件时,它不会给客户端带来任何关于文件类型的混乱错误

有关更多信息,请参阅。
您还将发现,由于它是现有框架的一个端口,因此可以为适用于该端口的原始框架提供大量帮助。

Excel Automation可能会很混乱,如果您的程序打算在web服务器上运行,它将帮不上忙,但它将为您提供读取、修改和创建Excel文件的完全访问权限

使用OLEDB驱动程序仅适用于Excel 1998-2003文件,而不是Excel 2007,功能子集有限(将图纸和命名区域视为“表格”,可以像数据库一样读写--无法控制格式、公式等),并且存在一些重大限制,但在ASP.NET应用程序中工作正常

(您可以下载一个单独的驱动程序,通过OLEDB访问Excel 2007的OOXML文件(xlsx)。我不知道与旧驱动程序相比,它有哪些功能或限制。)

如果应用程序在ASP.NET中运行,另一个选项是获取用于读取和写入Excel文件的第三方库。有些是开源的(通常是那些只读/写Excel2002-2007中的Excel XML文件,NPOI是一个显著的例外),有些相当昂贵


您唯一不想做的就是尝试实现自己的Excel BIFF格式(标准1997-2003文件格式)读写器。文件格式随着时间的推移而演变,对于凡人来说太复杂了。

< P>写作,有一个简单的工作,你可以考虑,让你的生活更轻松。 将所有内容写入逗号分隔的文本文件,并将其另存为csv。然后以csv作为参数,通过shell命令启动Excel。Voilla,即时导出到Excel

是一个与Excel兼容的电子表格组件,它可以读取和写入Excel工作簿(xls和xlsx),并且不依赖Excel、OleDb或.NET库以外的任何东西

你可以看到一些现场样品并下载免费试用版

免责声明:我拥有SpreadsheetGear LLC

如果您想在服务器上应用程序,可以使用Excel Jetcell.NET组件

它具有将数据从数据集、数据表导出为excel格式的有用功能。
它还可以保存excel文件(xls、xlsx)或将excel表示为一个流,为开发人员提供更多机会。查看更多代码示例。

您不需要第三方工具来读取/写入excel文件。。。 您所需的一切都已包含在namspace Microsoft.Office.Interop.Excel中
首先创建一个excel文件,并将其命名为例如。。test1.xls。。。还是别的什么 以下是您需要的代码:

using Excel = Microsoft.Office.Interop.Excel;
Excel.Application AppName = new Excel.Application();
Excel.Workbook bookName = AppName.Workbooks.Open(C:\....\test1);
Excel.Worksheet sheetName = AppName.Worksheets.get_Item(1);
sheetName.Rows[5].Cells[5].Value = "hello!";  //that writes hello in cell 5,5 in test1.xls
string box;
box = sheetName.Rows[10].Cells[10].Value;  //that reads the value of 10,10 cell in test1.xls and place it in box variable

曾几何时,我会同意-但那是在office 2007之前,现在应该使用office 2007格式和打包API我们需要更多的上下文-您希望在哪里运行应用程序(桌面或服务器),您可以合理地期望安装excel(可能不在服务器上)您需要读写-到同一个文件或从一个文件导入,再写入另一个文件?哦,是的-还有什么版本的excel?它将在桌面上运行,并且Office已经安装。我需要能够读取和写入同一个文件。非常有创意,但不是特别优雅,在可以写入excel的内容方面非常有限,根本不能解决从excel读取的问题。。。因此,我喜欢这种想法,但不是答案(-:您也可以创建只包含一个表的HTML文档,然后用它启动Excel…更多的格式化选项,但根据我的经验,十进制分隔符(至少在我们使用的奥地利)存在问题,请注意NPOI-行和列引用是零基的。