导入EXCEL表时,提示"找不到可安装的ISAM"怎么办?

安装过了MicrosoftOffice2003和2007,都很好用。就是有时,一些软件需要导入EXCEL的文件时,会提示出现:尝试连接MicrosoftOfficeExc... 安装过了Microsoft Office 2003 和2007,都很好用。就是有时,一些软件需要导入EXCEL的文件时,会提示出现:尝试连接Microsoft Office Excel数据失败!【详细情况】找不到可安装的ISAM出现以上的情况,应该怎么解决呢?谢谢! 展开
 我来答
幸运的杨晨晨
2015-10-29 · TA获得超过2.2万个赞
知道小有建树答主
回答量:1000
采纳率:66%
帮助的人:271万
展开全部
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
百度网友787c910
2015-05-26 · TA获得超过519个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:141万
展开全部

刚刚解决。暂时发现有四个可能性:

  1. office安装不完整,前面已经有人提供解答

  2. excel03的数据库未注册,在开始——运行对话框中输入:
    Regsvr32 c:\WINDOWS\system32\msexcl40.dll

  3. 进入控制面板——管理工具——数据源ODBC 查看用户DSN是否正确添加(我不知道是不是和上一步同一回事)

  4. 在卸载-安装过程中,原excel文件里的连接可能改变了。打开excel文件的表,连接选项卡——属性——点右上角小方块,连接属性——定义  对照这些内容是否和以往备份到服务器上的文件一致:
    DSN=Excel Files;DBQ=D:\基础库.xls;DefaultDir=D:\;
    DriverId=281;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yjtkgg321
推荐于2017-09-01 · TA获得超过3.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:87%
帮助的人:2085万
展开全部
  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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户87274
2014-07-28 · 超过62用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:118万
展开全部
注册Excel ISAM在“运行”对话框中:Regsvr32 c:\WINDOWS\system32\msexcl40.dll 查看原帖>>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式