如何阅读特殊字符,如“quotó&引用;在Excel中使用TCL?
我的.xls文件中有一些特殊字符。我试图读取.xls中的所有行并将它们写入.txt文件,但字符已更改。例如:Excel中有如何阅读特殊字符,如“quotó&引用;在Excel中使用TCL?,excel,tcl,ascii,Excel,Tcl,Ascii,我的.xls文件中有一些特殊字符。我试图读取.xls中的所有行并将它们写入.txt文件,但字符已更改。例如:Excel中有os。 TCL脚本: set Channel_Read [open Sample.xls r] set Channel_Write [open Text.txt a+] while {[gets $Channel_Read Line]>=0} { puts $Channel_Write $Line } close $Channel_Write close $Channe
o
s。
TCL脚本:
set Channel_Read [open Sample.xls r]
set Channel_Write [open Text.txt a+]
while {[gets $Channel_Read Line]>=0} {
puts $Channel_Write $Line
}
close $Channel_Write
close $Channel_Read
打开Text.txt后,ó
变为\&243代码>
你知道如何避免这种情况吗 立即点:
.xls格式为二进制格式,因此应使用:
set Channel_Read [open "Sample.xls" rb]
(或fconfigure$Channel\u Read-translation binary
打开后立即配置;它是等效的。)
类似地,如果要将其转储到另一个文件中,出于同样的原因,使用a+b
作为打开模式将停止输出损坏
对于从一个通道到另一个通道的直接复制,请使用fcopy
而不是循环。fcopy
命令使用一些低级技巧来提高工作效率
fcopy $Channel_Read $Channel_Write
然而,我真的怀疑,除了你提供的信息中直接透露的情况外,正在发生什么事情。Tcl不会以您描述的方式损坏字节(我知道编码引擎在做什么,对于任何编码它都不会以这种方式工作)。更重要的是,与电子表格相关的“线”概念显然是不正确的;电子表格没有行,它们有行(和列,还有表格),它们根本不需要以相同的方式排列。我也不明白为什么将二进制电子表格附加到另一个文件是一件好事
我认为你需要停下来,想想你正在尝试做的更广泛的任务,然后尝试解决这个问题,而不仅仅是这个小问题。虽然我可以更深入地回答您当前的问题,但我怀疑如果我这样做,我不会给您真正有帮助的帮助。无需重新发明轮子。使用这个软件包,它正是为你想要做的事情而设计的。以下是一些示例:您无法使用get
逐行读取.xls文件。这是一种专有的二进制格式-您需要一个特殊的解析器。您可能对它感兴趣。我自己也没试过,但看起来很有希望
是Excel内部表示的方式…