2012-03-07 174 views
-1
set application [::tcom::ref createobject "Excel.Application"] 
$application Visible 1 
set workbooks [$application Workbooks] 
set workbook [$workbooks Add] 
set worksheets [$workbook Worksheets] 
set worksheet [$worksheets Item [expr 1]] 
set cells [$worksheet Cells] 
set rows [array size atten] 
for {set row 1} {$row <= $rows} {incr row} { 
    $cells Item $row "B" $atten($row) 
} 
$workbook SaveAs Filename {c:\tst.csv} 
$application Quit 

嗨,我能够以CSV格式写入数据。但数据全部损坏。例如,当我用记事本打开数据时,数据已损坏,我的意思是我没有看到用逗号分隔的数据。我用什么方法将数据写入CSV格式有问题吗?使用Excel通过TCOM以CSV格式存储文件时数据损坏

+0

我回答这在我的第二个评论[本答案](http://stackoverflow.com/ a/9610107/720999)到你以前的问题,@amateur。现在是时候开始真正的思考,阅读和谷歌搜索,然后发布针对同一简单程序出现的每个小问题的其他问题。它开始看起来像我们为你做你的功课。 – kostix 2012-03-08 16:02:17

回答

2

使文件名以.csv结尾不足以将Excel保存为CSV。您必须将文件类型常量传递给SaveAs方法。不知道关于TCL的语法,但我猜的SaveAs正确调用将

$workbook SaveAs Filename {c:\tst.csv} FileFormat xlCSV 

SaveAs documentation

+3

如果不是'xlCSV','[expr 6]'(来自枚举的值)。 – 2012-03-08 13:54:22

相关问题