1 intToChar.tcl 2 3 # input a number : 1 to 32 , you will get a char A to Z 4 #A-Z:1-32 5 proc intToChar {int} { 6 if {![string is integer $int]} { 7 return "Please input a number!" 8 } 9 if {![expr 0<$int&&32>$int]} {10 return "Input a numer range 1 to 32!"11 } 12 set listChars [list A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]13 set intTemp [expr $int-1]14 return [lindex $listChars $intTemp]15 }16 17 #test18 #return [intToChar 1]19 20 21 intToChar.tcl22 23 package require tcom24 source intToChar.tcl25 proc xls_write {fileName date} {26 # if {[file exists $fileName]} { 27 # return {File is existed ! Please delete or change the the of the file !}28 # }29 if { ""==$date} {30 return "The date is NULL or '' !"31 }32 # set fileName {D:/test.xlsx}33 # 创建com实例,打开工作表34 set application [::tcom::ref createobject "Excel.Application"]35 $application Visible 136 set workbooks [$application Workbooks]37 set workbook [$workbooks Add]38 set worksheets [$workbook Worksheets]39 #set worksheet [$worksheets Item "Sheet1"]40 set worksheet [$worksheets Item [expr 1]]41 set cells [$worksheet Cells]42 43 set exeFlag 144 45 if {1==$exeFlag} {46 # set date {}47 set dateRawLength [llength $date]48 set rawIndex 049 while { $rawIndex < $dateRawLength } {50 set dateColumnLength 051 set dateColumnLength [llength [lindex $date $rawIndex]]52 set columnIndex 053 while { $columnIndex < $dateColumnLength } {54 [$cells Item [expr $rawIndex+1] [intToChar [expr $columnIndex+1]]] Value2 [lindex [lindex $date $rawIndex] $columnIndex]55 incr columnIndex56 }57 incr rawIndex58 }59 } 60 #code not work like wanting61 # if {[regexp -all {\\|/} $fileName]} { 62 # cd [file dirname $fileName]63 # } 64 #save without asking65 $application DisplayAlerts [expr 0]66 # $workbook SaveCopyAs {d://ts.xlsx}67 $workbook SaveAs $fileName68 $workbook Close69 $application Quit70 # return [file join [file dirname $fileName] [file tail $fileName]]71 }72 #含路径的文件保存时,有时会失败,原因不详(xls默认保存路径:菜单"文件"-->"选项"-->"保存",查看路径)73 set fileName {d:\testaaa.xlsx}74 set date [list [list 1 2 3 4 5 6 7 8 9 10] [list a b c d e f g] [list nihao hello 你好 howAreYou?]]75 #test 76 return [xls_write $fileName $date]