大家好, 
  
底部显示了一个例程,该例程可以向Excel提供图形中线型对象的摘要视图。超级方便的工具。 
  
这个程序运行得很好,只是有一些粗糙的边缘需要锉掉。 
  
这两个问题: 
  
问题1: 
在给出第二列并将列长度滑动到第三列时,方便地在文本“小计”中使用excel。 
这只是为了简化数据以按字母顺序排序。 
这可能吗? 
  
问题2: 
是否有可能在图案填充的第二个选项卡中生成总表面积。 
每层每平方米。 
  
那太好了。 
  
问候和感谢。 
巴特 
  
 
			
			(defun c:ple (/   elist    en     i      layer    layer_list     leng    pline     row      ss       sumlen   total     x    xlApp     xlBook   xlBooks  xlCells  xlSheet     xlSheets         ) (vl-load-com) (setq   xlApp      (vlax-get-or-create-object "Excel.Application")  xlBooks  (vlax-get-property xlApp "Workbooks")  xlBook      (vlax-invoke-method xlBooks "Add")  xlSheets (vlax-get-property xlBook "Sheets")  xlSheet      (vlax-get-property xlSheets "Item" 1)  xlCells      (vlax-get-property xlSheet "Cells") )  (vla-put-visible xlApp :vlax-true) ;headers (vlax-put-property xlCells "Item" 1 1 "Layer") (vlax-put-property xlCells "Item" 1 2 "Length")  (setq row 2  total 0) (setq ss (ssget "_X" (list (cons 0 "*POLYLINE"))) i -1) (repeat (sslength ss)   (setq en (ssname ss (setq i (1+ i)))    elist (entget en)    layer (cdr (assoc 8 elist)))   (if (not (member layer layer_list))     (setq layer_list (cons layer layer_list))))   (repeat (length layer_list)   (setq layer (car layer_list))   (vlax-put-property xlCells "Item" row 1 layer)   (setq ss (ssget "_X" (list (cons 0 "*POLYLINE")(cons 8 layer))) i -1 sumlen 0)   (repeat (sslength ss)   (setq row (1+ row))     (setq pline (vlax-ename->vla-object (ssname ss (setq i (1+ i)))))   (setq leng  (vlax-curve-getdistatparam pline       (vlax-curve-getendparam pline)))   (vlax-put-property xlCells "Item" row 2 (rtos leng 4 3))       (vlax-put-property xlCells "Item" row 2 (rtos leng 2 3)); for metric units     (setq sumlen (+ sumlen leng)))   (setq row (1+ row))   (vlax-put-property xlCells "Item" row 1 "SubTotal:")   (vlax-put-property xlCells "Item" row 2 (rtos sumlen 4 3))   (setq total (+ total sumlen))   (vlax-put-property xlCells "Item" row 2 (rtos sumlen 2 3)); for metric units   (setq layer_list (cdr layer_list))   (setq row (+ row 2))    ) ; footers:(vlax-put-property xlCells "Item" row 1 "Total:")(vlax-put-property xlCells "Item" row 2 (rtos total 4 3))(vlax-put-property xlCells "Item" row 2 (rtos total 2 3)); for metric units  (mapcar (function (lambda(x)         (vl-catch-all-apply           (function (lambda()             (progn               (vlax-release-object x)               (setq x nil)))))))(list xlCells xlSheet xlSheets xlBook xlBooks xlApp))(alert "Close Excel file manually")(gc)(gc)(princ) )(princ "\t\t***\t  Type PLE to write polines length to Excel\t***")(princ)