您好,我正在将数据从excel文件传输到列表,其中的格式如下。。。。第1行中的列列表,第2行中的列列表。。。等
该代码(我从互联网上获得)运行良好,除了excel中的数字。我将整个excel表格格式化为纯文本,然而,数字的格式为。0在它的末尾。。。例如2变为2.0
如果你对如何解决这个问题有任何建议,请告诉我!另外,我对Lisp程序很熟悉,所以完整的解释会很有帮助。非常感谢。
代码:
- (defun EXD (/ ExcelApp ExcData FilePath Sht ShtNum UsdRange Wbk)
- (setq FilePath (getfiled "Select Excel file to read :" "C:\\Users\\Public\\Documents\" "xlsx" 16))
- (setq ShtNum 1)
- (setq ExcelApp (vlax-get-or-create-object "Excel.Application"))
- (vla-put-visible ExcelApp :vlax-true)
- (setq Wbk (vl-catch-all-apply 'vla-open (list (vlax-get-property ExcelApp "WorkBooks") FilePath)))
- (setq Sht (vl-catch-all-apply 'vlax-get-property (list (vlax-get-property Wbk "Sheets") "Item" ShtNum)))
- (vlax-invoke-method Sht "Activate")
- (setq UsdRange (vlax-get-property Sht 'UsedRange) ExcData (vlax-safearray->list (vlax-variant-value (vlax-get-property UsdRange 'Value))))
- (setq ExcData (mapcar(function (lambda (x) (mapcar 'vlax-variant-value x))) ExcData))
- (vl-catch-all-apply 'vlax-invoke-method (list Wbk "Close"))
- (vl-catch-all-apply 'vlax-invoke-method(list ExcelApp "Quit"))
- (mapcar(function(lambda (x) (vl-catch-all-apply (function (lambda ()(progn(if (not (vlax-object-released-p x))(progn (vlax-release-object x)(setq x nil)))))))))(list UsdRange Sht Wbk ExcelApp))
- (gc)
- (gc)
- ExcData
- )
|