0x800a03ec {SaveAs method of Workbook class failed

2019-08-25 02:09发布

问题:

I'm trying to write some data from TCL to a CSV file, but i get the 0x800a03ec {SaveAs method of Workbook class failed} when executing it. Any idea why this is happening?

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

回答1:

The problem is in your SaveAs line. It should read

$workbook SaveAs {c:\tst.csv}

Also you may want to change the location from C:\ as that is often not a writable location,.



回答2:

Actually, plain googling for this yields lots of possible causes and solutions (from manual setting the output format to hitting the row limit to hitting the string length limit etc). Most definitely, this exception has nothing to do with Tcl (since it's just what COM marshals from an Excel instance), so just read through the discussions linked from the search output and see what applies to your case.



标签: excel com tcl