fathihvac 发表于 2022-7-6 08:35:54

浏览现有excel f

你好,
我已经在theswamp上发布了这个。组织
 
我正在寻找一个代码,允许我浏览现有的excel文件,并创建一个新的工作表,并给它一个预先确定的名称,以放置由计算autolisp程序生成的一些数据。

Lee Mac 发表于 2022-7-6 08:45:40

使用getfield,将“flags”参数设置为1,允许用户浏览要创建的新文件。

fixo 发表于 2022-7-6 08:56:42

试试看
对于测试,请在屏幕上选择一些块
(vl load com)(defun C:XLDEMO(/*error*colm defName ExcelApp exc\u data fcol fdata filepath ftype ins\u point ins\u record Lngcount newName pfset row Sheets Sht Sht ShtNames Wbk x xlCell xlCells XlLastsheet xlNewSheet)(defun*error*(msg)(if(vl positionmsg’(“控制台中断”函数取消“退出/退出中止”))(princ msg)(princ“error!”)(vl catch all apply“vlax invoke method(list ExcelApp“Quit”))(mapcar(function(lambda(x)(vl catch all apply)(function(lambda()(if(not(vlax-object-released-p x))(progn(vlax release object x)(setq x nil)))))(list xlCells Sht Sheets Wbk ExcelApp))(gc)(gc)(princ))(setq pfset(vla get pickfirstselectionset(vla get activedocument(vlax get acad object)))(vla clear pfset)(setq ftype(list 0 410)fdata(list“insert”(getvar'ctab))(setq ftype(vlax safearray fill(vlax make safearray vlax vbinteger(cons 0(1-(length ftype)))ftype)fdata(vlax safearray fill(vlax make safearray vlax vbvariant(cons 0(1-(长度fdata)))fdata));;全选:;;(vla select pfset acselectionsetall nil nil ftype fdata);;或在屏幕上选择(提示“\n选择要在Excel中写入的块”)(vla selectonscreen pfset ftype fdata)(if(>(vla get count pfset)0)(progn(vlax for block\u obj pfset(setq ins\u point(vlax get block\u obj'insertionpoint))ins\u记录(list(cons“BlockName”(vla get effectivename block\u obj))(cons“Position X”(car ins\u point))(cons“位置Y”(cadr ins_点))(cons“位置Z”(caddr ins_点)))(setq exc_数据(cons ins_记录exc_数据)));;Eof acad部分;;(setq newName“putyourname here”);

stevesfr 发表于 2022-7-6 09:08:39

修复。。。使用Acad2008,无法使xldemo工作。。。。?帮助。。。做错了什么??正在使用Office 2000。。。

fixo 发表于 2022-7-6 09:16:41

你好,史蒂夫,
也许你需要在这条线上改变
(setq filepath(getfiled“数据文件”(getvar“dwgprefix”)“xls”2)
在Office 2000中,我认为只是“xls”扩展
您也可以添加
(C:XLDEMO)在代码的最后,从控制台运行lisp,
错误发生后,进入菜单调试-->上一个错误源,
问题行将突出显示

stevesfr 发表于 2022-7-6 09:26:28

 
当我在图形中拾取块时,命令行中会出现以下消息:
命令:xldemo
选择要在Excel中写入的块
选择对象:找到0个
选择对象:
 
调试没有帮助,因为还没有明确的错误消息可用。
史蒂夫
TIA

fixo 发表于 2022-7-6 09:31:27

我的错,
您必须选择块,然后像往常一样按Enter键

stevesfr 发表于 2022-7-6 09:38:25

 
纳达
程序无法识别屏幕上拾取的块,说
命令:XLDEMO
选择要在Excel中写入的块
选择对象:找到0个
页: [1]
查看完整版本: 浏览现有excel f