是否有可能从excel文件中提取信息到未安装excel的计算机上的c#?

是否有可能从excel文件(.xls)中提取信息到安装excel的计算机上的c#?

我有以下代码:

OleDbConnection objConn = new OleDbConnection(CONNECTION_STRING.Replace("<FILENAME>", fileName)); try { objConnection.Open(); } catch (Exception) {} 

它会引发一个IndexOutOfRangeException(“无法find表0”),当我尝试打开OleDbConnection在没有安装Excel的计算机上运行时。 用excel在电脑上运行相同的代码工作得很好。 因此,我非常强烈地怀疑缺乏成功的罪魁祸首。

这是问题吗? 如果是这样,我怎样才能从文件中提取数据?

查看开源的NExcel 。 大约2年前最后更新,因此它不支持较新的Excel 2007 .xlsx格式,但会读取Excel 07-Excel 2003。

有没有安装Excel的两个主要方法

使用Jet数据库驱动程序来打开文件。 这将使您可以访问行中的单元格值,将每个表格视为表格。 您将无法访问任何元信息(格式,注释等)。

使用SpreadsheetGear.NET ,它允许您打开,创build,处理和保存Excel二进制文件没有Excel或任何其他依赖项。 SpreadSheetGear可以下载进行评估,但花费许可证。

这是可能的。 如果格式是.XLS,则使用Microsoft Jet OLEDB 4.0(只要它在32位系统上运行,应该没有问题 – 有一些64位系统的hick-ups) – 我怀疑你已经搞混了一点点。 你可能是在正确的道路上。

检查这个链接,它应该至less解释一些你需要知道的:

使用ADO.NET C#DbProviderFactory读取和写入Excel电子表格