sonali 发表于 2022-7-5 20:40:58

谢谢你的回复。
 
我请求所有的autolisp巨人站出来帮助我。这对我来说真的很重要。
 
我的需求很简单:
1.从csv文件的单元格B3中读取值,以及
2.将该值写入xls文件的单元格C3。
 
如果有人能做到这一点,那么请帮助我。我非常需要这个。

hanhphuc 发表于 2022-7-5 20:43:42

 
很抱歉打扰了。。
嗨,索纳利,你是说两个不同的文件吗
读csv写xls?
 
如果输出只是带分隔符的acsii文本,我更喜欢csv。
它比使用需要导入类型库的xls格式更容易、更快。
 
我建议您在中发布一个示例数据。csv或输出

sonali 发表于 2022-7-5 20:46:02

先生,谢谢你站出来帮助我。
 
是的,先生,两份不同的文件。
读取csv并将其写入xls。
 
现在,我将首先解释我在csv文件中面临的问题:
 
1.csv文件中的数据,我必须通过数学公式进行处理。
例如,用于单元格B1到B4中可用数据的总和。
i、 e.(=总和(B1:B4))。
 
现在,这些不能在csv文件中完成。这些操作只能在xls文件中执行。
 
因此,在从特定程序获取数据后,将生成csv文件。
 
现在,我想做的是将数据从csv文件传输到xls文件。因此,我可以处理xls文件中可用的数据。
 
所以,如果整个文件可以同时从csv传输到xls,那么它将非常棒。
 
或者至少,我正在搜索代码,通过这些代码,我可以准确地读取csv文件中特定单元格的值。并将该值准确写入xls文件的目标单元格。
请帮我做点什么。
 
这里我附上我的csv和xls文件。所以,你可以想象它们。
再次感谢你。
csv文件。csv
xls文件。xls公司

hanhphuc 发表于 2022-7-5 20:50:17

您的csv和xls数据相同吗?
为什么不直接用Excel、edit或formulas等打开csv。。
然后另存为xls?
 
 
汇总可以在列表中完成:
示例:根据您的数据。
 
 
例子:
 
;将列表拆分为行
(setq行
(mapcar“”((x)(csv$x))数据)
 
;将列表转换为列
(setq列(trp行))
 
;每列(A、B、C)的总和
(_sum列)
;(5599.0 88.0 7960.0)
 
;每排集水坑(1~7)
(_总和行)
;(13.0 13.0 7545.0 5465.0 53.0 55.0 503.0)
 
 
子功能

;transpose : Doug Wilson
(defun trp (x)
(apply 'mapcar (cons 'list x)))

(defun csv$ (str / i l) ;split csv
        (while (setq i (vl-string-search "," str))
          (setq        l   (cons (substr str 1 i) l)
                str (substr str (+ 2 i) (- (strlen str) i))
                ) ;_ end of setq
          ) ;_ end of while
        (reverse(vl-remove "" (cons str l)))
        )

(defun _sum (lst)
(mapcar ''((x)(apply '+ (mapcar 'atof x))) lst))

sonali 发表于 2022-7-5 20:54:23

先生,谢谢你的回复。
 
但是,这些求和只是一个例子,我必须进行多重数学运算。我必须在不打开csv文件的情况下使用autolisp。
 
所以,我需要的很简单:
 
如何读取可用csv文件的值特定单元格B4?如果我得到这个答案,那么我可以继续写Xls。先生,请帮帮我。

hanhphuc 发表于 2022-7-5 20:55:19

 
也许你忽视了比加尔在10号邮递站的建议
他提到的是getexcel。lsp
阅读带有用法的注释,putcell是函数之一。
也许这就是你要找的?
 

BIGAL 发表于 2022-7-5 20:59:18

好的,在excel中有一个解决方案,你有VBA,所以可以读取csv文件和涉及的数学,并将答案“放入”单元格b23。与lisp相同。我认为这里的问题不是我们写东西,而是你学习如何使用谷歌编程,你可以再次找到示例编码,你可以将代码剪切并粘贴到excel宏中。相反,您可能可以使用excel驱动Autocad。hanphuc提供了一些示例,作为开始,您只需要从Autocad获取一个变量并将其放入一个单元格,数学很简单。
 
有一个CSV列表lisp我在iPad上使用它现在不可用,但示例
 
(3.4.6)(*(第0个lst)(第1个lst))=12

sonali 发表于 2022-7-5 21:04:00

非常感谢hanhphuc、BIGAL和ReMark对您的帮助。终于完成了。没有你们,这是不可能的。再次感谢你,上帝保佑你。

mailmaverick 发表于 2022-7-5 21:06:00

如果它为你做了,你能在这里张贴你的代码吗。
谢谢

sonali 发表于 2022-7-5 21:10:23

是的,当然。代码取自GetExcel。lsp。BIGAL和hanhphuc在第#16号帖子中提出了这一建议。
 
http://web2.airmail.net/terrycad/LISP/GetExcel.lsp
页: 1 [2]
查看完整版本: 正在转换。csv文件到。xls f