我目前正在使用TCOM使用TCL处理excel。我有2个excel表文件。我需要做的是比较两个文件的差异,并在txt文件/ excel中列出它们。 我想知道两个excel文件之间的比较是否可以使用tcl / tcom完成。
答案 0 :(得分:0)
如果您在Linux环境中工作,可以使用一些bash命令来帮助您。
我认为快速处理数据的最佳方法是通过csv文件。你可以使用:
exec sort sheet1.csv
exec sort sheet2.csv
set diff [diff sheet1.csv sheet2.csv]
编辑,因为这不是一个纯粹的Tcl:
让我们说两个csv文件如下所示: sheet1.csv - > A B C D sheet2.csv - >一个,d,C,E
您可以通过将它们作为参数传递到Tcl文件来加载这些文件: myTclFile sheet1.csv sheet2.csv
在您的Tcl中,您可以使用argv:
阅读它们set list1 [lindex $argv 0]
set list2 [lindex $argv 1]
最好在调用输入文件之前检查输入文件。 如果文件的顺序不重要,但只有它们具有相同数据的事实,您可以使用lsort。尽管如此,为了将其转换为实际的元素列表,而不是使用一个大字符串 split :
set list1 [split $list1 ',']
set list2 [split $list2 ',']
然后你可以按照你想要的方式迭代这些列表。我的建议是使用 foreach 。这或多或少会像这样(如果你想迭代整个列表,则为示例)
foreach element $list1 {
foreach element2 $list2 {
set hasMatch 0
if {$element == $element2} {
incr hasMatch
break
} else {
continue
}
}
if {!$hasMatch} {
set diff [lappend $diff $element]
} else {
continue
}
}