简体   繁体   中英

0x800a03ec {SaveAs method of Workbook class failed} error in TCOM/TCL

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

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.

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,.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM