访问.xls文件中的数据的办公室不可知的方式?

我正在开发一个需要从excel电子表格中获取数据的VS 2008 C#程序。 问题是,用户运行Office 2007和Office 2010的混合。所以我试图得到一些指针在正确的方向上编程方式获取数据的xls不关心哪个版本的办公室的用户已经安装。

奖金点,如果它将在两种环境下编译(VS2008 / Office2007和VS2008 / Office2010)

你可以使用OleDB 。

请注意,他们的例子是不正确的,需要使用OleDbConnectionStringBuilder ,像这样:

 OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(); if (isOpenXML) builder.Provider = "Microsoft.ACE.OLEDB.12.0"; else builder.Provider = "Microsoft.Jet.OLEDB.4.0"; builder.DataSource = fileName; builder["Extended Properties"] = "Extended Properties=\"Excel 8.0;HDR=YES;\"" con = new OleDbConnection(builder.ToString()); 

不知道这是否是一个你有预算的项目….

在我们公司,我们已经使用了SpreadsheetGear,并且使用起来非常棒。 如果你有资金,那么在使用excel文件的时候,这是一个很好的工具。 SpreadsheetGear可以帮助任何types的Excel文件,而且不需要用户安装Excel。

你根本不需要使用办公自动化。 有很多从.Net读取Excel文件的软件包。 有些是商业的,有些是开源的。

在codeplex.com的随机search返回这个例如: Excel数据读取器

如果您真的想使用Excel本身来读取数据,那么您应该引用您期望您的用户安装的最低版本的Excel。 Excel 2010向后兼容Excel 2007,应支持针对2007库编写的应用程序。

只需将数据导出到csv或txt文件,它将是版本不可知的。

这个免费且易于使用。

http://npoi.codeplex.com/