明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 824|回复: 2

求哪位大神给个读取EXCEL文件指定单元格内容的函数

[复制链接]
发表于 2017-11-19 20:21:24 | 显示全部楼层 |阅读模式
本帖最后由 lifuq1979 于 2017-11-20 21:21 编辑

求哪位大神给个读取EXCEL文件指定单元格内容的程序,通用函数更好,EXCEL版本2016,谢谢!!!
找到一个帖子
[求助(已解决)]用lisp读取Excel文件中指定单元格的数据
http://bbs.mjtd.com/forum.php?mo ... amp;fromuid=7322308
(出处: 明经CAD社区)
(defun Excel-Get-data ( / xfile cell ADOCONNECT ADORECORDSET ConnectionString lst Sheet-name source cell-tmp cell-value)
  ;指定单元格的数据
  (defun Excel-Get-CellValue (Sheet-name cell)
    (setq source (strcat "SELECT * FROM [" Sheet-name cell":" cell "]"))
    (vlax-invoke-method  ADORecordset "Open" source ADOConnect 1 3 nil)
    (setq cell-tmp (vlax-safearray->list (vlax-variant-value (vlax-invoke-method ADORecordset "GetRows" 1))))
    (vlax-variant-value (car (car cell-tmp)))  
  )
  (setq xfile (getfiled "打开法兰计算文件" "" "xls" 8))
  (setq ADOConnect (vlax-get-or-create-object "ADODB.Connection"))
  (setq ADORecordset (vlax-get-or-create-object "ADODB.Recordset"))
  (setq ConnectionString (strcat "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" xfile ";Extended Properties=;Excel 8.0;HDR=No" ))
  (if (not
(vl-catch-all-error-p
   (vl-catch-all-apply
     (function vlax-invoke-method)
     (list ADOConnect "Open" ConnectionString  "admin" "" nil)
   )
)
      )
    (progn
      (setq lst
      (vlax-safearray->list
        (vlax-variant-value
   (vlax-invoke-method (vlax-invoke-method ADOConnect "OpenSchema" 4 ) "GetRows" 1)
        )
     )
      )
      (setq Sheet-name (vlax-variant-value (car (caddr lst))));确定"第一个"工作表的名称
      (setq cell-value (Excel-Get-CellValue Sheet-name "H16"));H16单元格
      (vlax-invoke-method ADORecordset "Close")
      (vlax-invoke-method ADOConnect "Close")
    )
    (progn
      (princ "\n打开Excel数据文件出错")
      (vl-catch-all-apply 'vlax-invoke-method (list ADOConnect "Close"))
      (setq cell-value nil)
    )
  )
  (vlax-release-object ADORecordset)
  (vlax-release-object ADOConnect)
  cell-value
)
运行出现----; 错误: Automation 错误。 Microsoft Jet
数据库引擎找不到对象''111$'D4:D4'。请确定对象是否存在,并正确地写出它的名称和路
径。
这是什么原因,是与EXCEL版本有关吗???

发表于 2017-11-20 09:03:56 | 显示全部楼层
新手一枚,我用的是打开l工作簿,然后获取值得j = ExcelApp.Application.GetOpenFileName(FileFilter:="选择排图用的转序单 ,*.xlsx; *.xlsm; *.xlsb;*.xls")
发表于 2017-11-20 17:56:00 | 显示全部楼层
(xlr_get_excel_range  EXCEL对象 单元格区域)获得EXCEL数据

需要小一个人工具支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 07:33 , Processed in 0.177416 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表