导入EXCEL表时,提示"找不到可安装的ISAM"怎么办?
安装过了MicrosoftOffice2003和2007,都很好用。就是有时,一些软件需要导入EXCEL的文件时,会提示出现:尝试连接MicrosoftOfficeExc...
安装过了Microsoft Office 2003 和2007,都很好用。就是有时,一些软件需要导入EXCEL的文件时,会提示出现:尝试连接Microsoft Office Excel数据失败!【详细情况】找不到可安装的ISAM出现以上的情况,应该怎么解决呢?谢谢!
展开
4个回答
展开全部
Microsoft.Jet.OLEDB.4.0好像不支持Excel,你可以用DAO来访问
首先需要引用Microsoft DAO 3.6 Object Library
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Set DB = OpenDatabase("d:\数据.xls", False, False, "Excel 8.0;")
Set RS = DB.OpenRecordset("文件$")
Set DataGrid1.DataSource = RS
找不到可插入的ISAM的好像就是不支持这种数据格式,
--抱歉,刚看了一下,Datagrid只支持ado的datasource,你如果非要用控件绑定的话,你可以Miscrosoft FlexGrid,它可以绑定dao的datasource
如果你只是为了显示,我建议你可以不用绑定的方式,在Form上放一个ListView控件,然后在ListView属性中把查看方式改成lvReport,增加列首(标题)和Excel的列一一对应。代码如下
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Set DB = OpenDatabase("d:\数据.xls", False, False, "Excel 8.0;")
Set RS = DB.OpenRecordset("文件$")
Dim li As ListItem
ListView1.ListItems.Clear
Do Until RS.EOF
Set li = ListView1.ListItems.Add(, , (RS(0))
For i = 1 To RS.Fields.Count - 1
li.SubItems(i) = RS(i)
Next
RS.MoveNext
Loop
首先需要引用Microsoft DAO 3.6 Object Library
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Set DB = OpenDatabase("d:\数据.xls", False, False, "Excel 8.0;")
Set RS = DB.OpenRecordset("文件$")
Set DataGrid1.DataSource = RS
找不到可插入的ISAM的好像就是不支持这种数据格式,
--抱歉,刚看了一下,Datagrid只支持ado的datasource,你如果非要用控件绑定的话,你可以Miscrosoft FlexGrid,它可以绑定dao的datasource
如果你只是为了显示,我建议你可以不用绑定的方式,在Form上放一个ListView控件,然后在ListView属性中把查看方式改成lvReport,增加列首(标题)和Excel的列一一对应。代码如下
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Set DB = OpenDatabase("d:\数据.xls", False, False, "Excel 8.0;")
Set RS = DB.OpenRecordset("文件$")
Dim li As ListItem
ListView1.ListItems.Clear
Do Until RS.EOF
Set li = ListView1.ListItems.Add(, , (RS(0))
For i = 1 To RS.Fields.Count - 1
li.SubItems(i) = RS(i)
Next
RS.MoveNext
Loop
展开全部
刚刚解决。暂时发现有四个可能性:
office安装不完整,前面已经有人提供解答
excel03的数据库未注册,在开始——运行对话框中输入:
Regsvr32 c:\WINDOWS\system32\msexcl40.dll进入控制面板——管理工具——数据源ODBC 查看用户DSN是否正确添加(我不知道是不是和上一步同一回事)
在卸载-安装过程中,原excel文件里的连接可能改变了。打开excel文件的表,连接选项卡——属性——点右上角小方块,连接属性——定义 对照这些内容是否和以往备份到服务器上的文件一致:
DSN=Excel Files;DBQ=D:\基础库.xls;DefaultDir=D:\;
DriverId=281;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C#读取Excel代码:
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FilePath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";//不能是11.0
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "select * from [sheet1$]";
OleDbDataAdapter da = new OleDbDataAdapter(strExcel, strConn);
DataSet ds = new DataSet();
try
{
da.Fill(ds);
}
catch (Exception ex)
{
throw new Exception("读取Excel失败:"+ex.Message);
}
return ds;
如果提示"找不到可安装的ISAM",通过google,有两个解决办法:
1、连接字符串问题
Extended Properties='Excel 8.0;HDR=NO;IMEX=1'
//HDR表示要把第一行作为数据还是作为列名,作为数据用HDR=no,作为列名用HDR=yes;通过Imex=1来把混合型作为文本型读取,避免 null值。
上句的左右两个单引号不能少。
2、只需注册 Excel ISAM即可
在“运行”对话框中输入回车即可:Regsvr32 c:\WINDOWS\system32\msexcl40.dll
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FilePath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";//不能是11.0
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "select * from [sheet1$]";
OleDbDataAdapter da = new OleDbDataAdapter(strExcel, strConn);
DataSet ds = new DataSet();
try
{
da.Fill(ds);
}
catch (Exception ex)
{
throw new Exception("读取Excel失败:"+ex.Message);
}
return ds;
如果提示"找不到可安装的ISAM",通过google,有两个解决办法:
1、连接字符串问题
Extended Properties='Excel 8.0;HDR=NO;IMEX=1'
//HDR表示要把第一行作为数据还是作为列名,作为数据用HDR=no,作为列名用HDR=yes;通过Imex=1来把混合型作为文本型读取,避免 null值。
上句的左右两个单引号不能少。
2、只需注册 Excel ISAM即可
在“运行”对话框中输入回车即可:Regsvr32 c:\WINDOWS\system32\msexcl40.dll
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
注册Excel ISAM在“运行”对话框中:Regsvr32 c:\WINDOWS\system32\msexcl40.dll 查看原帖>>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询