XlsReadWriteII 组件在尝试在 xls 中写入 UTF8 字符时删除字符串 sheet
XlsReadWriteII Component deletes strings when trying to write UTF8 characters in xls sheet
我正在使用 Delphi 7 构建一个项目,其中我使用了 Axolot 的 XLSReadWriteII5 组件。现在我正在尝试创建一个 xls sheet,我试图在其中复制特定 sql table 的数据。
具体来说,我有一个 table 名称 "CredentialsT",其中我有以下记录:
A/A ServerURL UserName Password Numbers
1 11111 DFGDFSG 4emÜø}ý 275,12073,1780
2 adsf asdf 7g2ÌkßJ 275,12073,1780
3 sdfasdf afsadfasdf 4e8@Â:Ïœ 275,12073,1780
4 asdfdsafasd gggggggg 0‰n>ª3ý 19504,32539,275
"Password" 列中的数据已加密,这就是为什么它的内容看起来 - 不知何故 - 没有逻辑。 "Numbers column"也是字符串类型。
现在,在我创建 XLSReadWrite object 之后,我读取了上述记录,然后将它们写入我使用 XLSReadWrite object 创建的 xls 文件中。然而,即使在读取或写入过程中没有出现错误或警告,当我尝试打开 xls 文件时 - 使用 excel - 它会产生 4 个关于文件机密性的警告 - 你只需在其中单击'ok/yes' 按钮并出现以下致命错误消息:
"已停产部门:部门 /xl/sharedStrings.xml XML-error。(字符串)非法 xml 字符。第 83 行,第 5 列。
停产条目:/xl/worksheets/sheet1.xml"
部分的单元格信息
通过单击 "ok/yes" 按钮,xls 文件将打开,但仅保留数字数据(A/A 列)。其他所有内容都丢失了,甚至 headers 列(A/A、ServerURL 等)。另一方面,如果我从我的服务器复制并在我的 xls 文件中写入除 "Password" 一个 之外的所有列 ,那么一切都非常有效。所以,我想整个问题都与编码有关。那是因为Delphi-7不使用UTF8编码而是ANSI编码。
我试图查找 XLSReadWriteII5 组件是否有任何 "encoding" 属性 但我失败了。
谁能给我提供解决此问题的方法?
将加密数据编码为有效的字符串格式。
加密数据为8位字节,并非所有8位字节都是UTF-8字符。通常如果加密数据需要是UTF-8字符,它被编码为Base64或十六进制字符串。
我正在使用 Delphi 7 构建一个项目,其中我使用了 Axolot 的 XLSReadWriteII5 组件。现在我正在尝试创建一个 xls sheet,我试图在其中复制特定 sql table 的数据。 具体来说,我有一个 table 名称 "CredentialsT",其中我有以下记录:
A/A ServerURL UserName Password Numbers
1 11111 DFGDFSG 4emÜø}ý 275,12073,1780
2 adsf asdf 7g2ÌkßJ 275,12073,1780
3 sdfasdf afsadfasdf 4e8@Â:Ïœ 275,12073,1780
4 asdfdsafasd gggggggg 0‰n>ª3ý 19504,32539,275
"Password" 列中的数据已加密,这就是为什么它的内容看起来 - 不知何故 - 没有逻辑。 "Numbers column"也是字符串类型。
现在,在我创建 XLSReadWrite object 之后,我读取了上述记录,然后将它们写入我使用 XLSReadWrite object 创建的 xls 文件中。然而,即使在读取或写入过程中没有出现错误或警告,当我尝试打开 xls 文件时 - 使用 excel - 它会产生 4 个关于文件机密性的警告 - 你只需在其中单击'ok/yes' 按钮并出现以下致命错误消息:
"已停产部门:部门 /xl/sharedStrings.xml XML-error。(字符串)非法 xml 字符。第 83 行,第 5 列。 停产条目:/xl/worksheets/sheet1.xml"
部分的单元格信息通过单击 "ok/yes" 按钮,xls 文件将打开,但仅保留数字数据(A/A 列)。其他所有内容都丢失了,甚至 headers 列(A/A、ServerURL 等)。另一方面,如果我从我的服务器复制并在我的 xls 文件中写入除 "Password" 一个 之外的所有列 ,那么一切都非常有效。所以,我想整个问题都与编码有关。那是因为Delphi-7不使用UTF8编码而是ANSI编码。
我试图查找 XLSReadWriteII5 组件是否有任何 "encoding" 属性 但我失败了。
谁能给我提供解决此问题的方法?
将加密数据编码为有效的字符串格式。
加密数据为8位字节,并非所有8位字节都是UTF-8字符。通常如果加密数据需要是UTF-8字符,它被编码为Base64或十六进制字符串。