Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;找不到可安装的ISAM“;尝试分析excel电子表格时出错_C#_Asp.net Mvc_Excel - Fatal编程技术网

C# &引用;找不到可安装的ISAM“;尝试分析excel电子表格时出错

C# &引用;找不到可安装的ISAM“;尝试分析excel电子表格时出错,c#,asp.net-mvc,excel,C#,Asp.net Mvc,Excel,我正在发回一个xls文件,在填充适配器时出现错误“找不到可安装的ISAM”。我有office 2007 32位,运行xp 64位 将已更改的连接字符串更新为12.0到4.0--同一问题 private string convertFileToPSV(HttpPostedFileBase file) { var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +

我正在发回一个xls文件,在填充适配器时出现错误“找不到可安装的ISAM”。我有office 2007 32位,运行xp 64位

将已更改的连接字符串更新为12.0到4.0--同一问题

  private string convertFileToPSV(HttpPostedFileBase file) {

        var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Source="+ fileName +";" +
                               "Extended Properties=\"Excel 8.0;HDR=YES;\"";

        var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1]", connectionString);
        var dt = new DataTable();

        adapter.Fill(dt);

        string psvSting = "";

        for (int i = 0; i < dt.Rows.Count; i++) {
            for (int j = 0; j < dt.Columns.Count; j++) {
                psvSting += "\"" + dt.Rows[i][j].ToString() + "\"|";
            }
        }
私有字符串convertFileToPSV(HttpPostedFileBase文件){
var connectionString=“Provider=Microsoft.Jet.OLEDB.4.0;”+
“Source=“+fileName+”;”+
“扩展属性=\”Excel 8.0;HDR=是;\“”;
var adapter=新的OleDbDataAdapter(“从[Sheet1]中选择*”,connectionString);
var dt=新数据表();
适配器填充(dt);
字符串psvSting=“”;
对于(int i=0;i
正如ron所说,您选择的DB驱动程序是access 2010驱动程序。如果运行此操作的计算机没有access 2010…它将无法工作。正如ron所建议的,您可以下载驱动程序

或者,您可以尝试
Provider=Microsoft.Jet.OLEDB.4.0
,因为这是XP和Vista附带的,如果您使用的是windows 7,则必须使用下载

excel版本还应与您使用的excel相匹配:

Excel 2003
Excel 8.0

Excel 2007/2010
Excel 12.0

总之,您的连接字符串应为

var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
                           "Source="+ fileName +";" + 
                           "Extended Properties=\"Excel 12.0;HDR=YES;\""; 

Jet驱动程序仅为x86。如果尝试在x64操作系统上运行它,它将无法工作。请确保在.NET项目的属性中明确以x86为目标,以确保它加载x86非托管版本的驱动程序。

尝试使用“
数据源=
”代替“
源=

我想我的朋友可以帮你。只需要两个;最后

var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Source="+ fileName +";" +
                               "Extended Properties='Excel 8.0;HDR=YES;';";

请检查以确保安装了“Microsoft.ACE.OLEDB.12.0”驱动程序。并非所有MS-OS都包含该驱动程序。我更改了连接字符串,但仍然收到相同的错误。您说得很对……excel版本也需要更新,可能是您的原始问题。我将更新我的答案
var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Source="+ fileName +";" +
                               "Extended Properties='Excel 8.0;HDR=YES;';";