乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 9|回复: 8

[编程交流] Excel到Cad

[复制链接]

10

主题

45

帖子

35

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-6 12:02:14 | 显示全部楼层 |阅读模式
嗨,朋友们
如何将每个excel列放入线性阵列?
如何将每个excel原始数据放入线性阵列?
例如10行4列
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:11:47 | 显示全部楼层
VBA还是LISP?
 
有关LISP,请参见此处:
 
http://web2.airmail.net/terrycad/LISP/GetExcel.lsp
 
http://www.theswamp.org/index.php?topic=10101.0
 
回复

使用道具 举报

10

主题

45

帖子

35

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-6 12:21:13 | 显示全部楼层
 
谢谢李先生
我读了这些文件,它们非常详细,可以解决我的问题。
李先生,我可以读lisp文件,但我不是lisp程序员,
我从两周前开始使用lisp编程,但现在我可以将这些lisp文件与vba代码结合起来,或将其转换。
非常感谢,祝你玩得愉快。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:25:24 | 显示全部楼层
 
隐马尔可夫模型。。。我认为它们需要重新写入VBA。。。未转换-没有简单(或快速)的任务。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:34:13 | 显示全部楼层
 
另一种方式
 
  1. (defun readrow (xlsheet rownum / c1 cel cels celvalue cols r1 rowdata xlrange xlrow)
  2. (vlax-invoke-method xlsheet "Activate")          ;optional
  3. (setq xlrange (vlax-get-property xlsheet "UsedRange"))
  4. (setq        xlrow        (vlax-variant-value
  5.           (vlax-get-property
  6.             (vlax-get-property
  7.               xlrange
  8.               "Rows")
  9.             "Item"
  10.             rownum)))
  11. (setq cols (vlax-get-property
  12.        (vlax-get-property xlrange "Columns")
  13.        "Count")
  14. )
  15. (vlax-invoke-method xlrange "Activate")          ;optional
  16. (vlax-invoke-method xlrange "Select")          ;optional
  17. (setq cels (vlax-get-property xlsheet "Cells"))
  18. (setq        r1   rownum                                  ; given row number
  19. c1   1                                          ; initial column number in row
  20. )                                         
  21. (while (<= c1 cols)
  22.    (setq cel (vlax-variant-value
  23.         (vlax-get-property
  24.           cels
  25.           "Item"
  26.           ;; row number :
  27.           (vlax-make-variant r1 vlax-vblong)
  28.           ;; column number :
  29.           (vlax-make-variant c1 vlax-vblong))))
  30.    (setq celvalue (vlax-variant-value (vlax-get-property cel "Value2")))
  31.    (setq rowdata (cons (vl-princ-to-string celvalue) rowdata))
  32.    (setq c1 (1+ c1 )))
  33.    (reverse rowdata)
  34. )
  35. (defun readcolumn (xlsheet colnum / c1 cel cels celvalue columndata r1 rows xlrange xlrow)
  36. (vlax-invoke-method xlsheet "Activate")          ;optional
  37. (setq xlrange (vlax-get-property xlsheet "UsedRange"))
  38. (setq        xlrow        (vlax-variant-value
  39.           (vlax-get-property
  40.             (vlax-get-property
  41.               xlrange
  42.               "Rows")
  43.             "Item"
  44.             colnum)))
  45. (setq rows (vlax-get-property
  46.        (vlax-get-property xlrange "Rows")
  47.        "Count")
  48. )
  49. (vlax-invoke-method xlrange "Activate")          ;optional
  50. (vlax-invoke-method xlrange "Select")          ;optional
  51. (setq cels (vlax-get-property xlsheet "Cells"))
  52. (setq        r1  1                                                   ; initial row number in column
  53. c1  colnum                                          ; given column number
  54. )                                         
  55. (while (<= r1 rows)
  56.    (setq cel (vlax-variant-value
  57.         (vlax-get-property
  58.           cels
  59.           "Item"
  60.           ;; row number :
  61.           (vlax-make-variant r1 vlax-vblong)
  62.           ;; column number :
  63.           (vlax-make-variant c1 vlax-vblong))))
  64.    (setq celvalue (vlax-variant-value (vlax-get-property cel "Value2")))
  65.    (setq columndata (cons (vl-princ-to-string celvalue) columndata))
  66.    (setq r1 (1+ r1 )))
  67.    (reverse columndata)
  68. )
  69. ;; Usage :
  70. (defun C:GRD  (/
  71.         *error*
  72.         C1
  73.         Cel
  74.         Cels
  75.         Celvalue
  76.         Colnum
  77.         Datalist
  78.         Excelapp
  79.         Filepath
  80.         Findrang
  81.         Findrow
  82.         Lastcell
  83.         R1
  84.         Rownum
  85.         Sht
  86.         Shtnum
  87.         Wbk)
  88. (defun *error*  (msg)
  89.    ;; close workbook w/o saving changes
  90.    (vl-catch-all-apply
  91.      'vlax-invoke-method
  92.      (list Wbk "Close")
  93.      )
  94.    ;; quit Excel
  95.    (vl-catch-all-apply
  96.      'vlax-invoke-method
  97.      (list ExcelApp "Quit")
  98.      )
  99.    ;; clean up of memory
  100.    (mapcar
  101.      (function
  102. (lambda        (x)
  103.   (vl-catch-all-apply
  104.     (function (lambda ()
  105.                 (if (not (vlax-object-released-p x))
  106.                   (vlax-release-object x)
  107.                   )
  108.                 )
  109.               ))))
  110.      (list Cel LastCell Cels FindRow FindRang Sht Wbk ExcelApp)
  111.      )
  112.    (setq Cel nil
  113.   LastCell nil
  114.   Cels nil
  115.   FindRow nil
  116.   FindRang nil
  117.   Sht nil
  118.   Wbk nil
  119.   ExcelApp nil
  120.   )
  121.    (gc)
  122.    (gc)
  123.    (princ)
  124.    )
  125. (setq        FilePath (getfiled "Select Excel file to read data:"
  126.                    (getvar "dwgprefix")
  127.                    "xls"
  128.                    16
  129.                    )
  130. )
  131. (initget 6)
  132. (setq ShtNum (getint "\nEnter a sheet number <1>: "))
  133. (if (not ShtNum)
  134.    (setq ShtNum 1))
  135. (initget 6)
  136. (setq RowNum (getint "\nEnter a row number <1>: "))
  137. (if (not RowNum)
  138.    (setq RowNum 1))
  139.    (initget 6)
  140. (setq ColNum (getint "\nEnter a column number <1>: "))
  141. (if (not ColNum)
  142.    (setq ColNum 1))
  143. (setq ExcelApp (vlax-get-or-create-object "Excel.Application"))
  144. (vla-put-visible ExcelApp :vlax-true)                  ;or :vlax-false for invisible mode
  145. (setq        Wbk (vl-catch-all-apply
  146.       'vla-open
  147.       (list (vlax-get-property ExcelApp "WorkBooks") FilePath)))
  148. (setq        Sht (vl-catch-all-apply
  149.       'vlax-get-property
  150.       (list (vlax-get-property Wbk "Sheets")
  151.             "Item"
  152.             ShtNum)))
  153. (vlax-invoke-method Sht "Activate")
  154. (setq rowlist (readrow Sht RowNum))
  155. (setq columnlist (readcolumn Sht ColNum))
  156. (princ "\nRow data: ")
  157. (print rowlist)
  158. (princ "\nColumn data: ")
  159. (print columnlist)
  160. ;; --> work here with this data after
  161. (*error* "")
  162. (princ)
  163. )
  164. (vl-load-com)

 
~'J'~
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:46:51 | 显示全部楼层
 
下面是VBA示例
 
~'J'~
ReadExcel。拉链
回复

使用道具 举报

10

主题

45

帖子

35

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-6 12:48:03 | 显示全部楼层
谢谢亲爱的fixo
我改变了你的代码,现在我可以阅读一个excel文件,有7列和1420行,当它工作正常,完成我的项目,把它放在你的代码之后。还有一次,我非常感谢你和李先生的代码。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:59:15 | 显示全部楼层
不客气,卡德曼
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 13:09:40 | 显示全部楼层
 
不客气
干杯
 
~'J'~
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 10:14 , Processed in 0.395528 second(s), 81 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表