我正在尝试将一些数据从TCL写入CSV文件,但是在执行时我得到了0x800a03ec {WorkAs类的SaveAs方法失败}。知道为什么会这样吗?
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 worksheet [$worksheets Item "Sheet1"]
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
答案 0 :(得分:1)
实际上,plain googling for this会产生许多可能的原因和解决方案(从手动设置输出格式到达到行限制以达到字符串长度限制等)。最明显的是,这个例外与Tcl无关(因为它只是COM从Excel实例中编组),所以只需阅读从搜索输出链接的讨论,看看适用于你的情况。
答案 1 :(得分:0)
问题在于您的SaveAs行。它应该读
$workbook SaveAs {c:\tst.csv}
此外,您可能希望从C:\更改位置,因为它通常不是可写位置。