5

在 Excel 中,如何将包含重音字符、花引号等的单元格的内容转换为相同字符的 HTML 或音译的纯文本版本?

我们有一个包含一些“高”字符的 XLS 文档。数据已通过数据库连接拉入,看来 Excel 正在正确处理位于不同代码页中的单个单元格(或行)。

当我们将此数据导出到 CSV 时,一些高位字符未正确呈现 - Excel 似乎对文档使用单一编码(当然),以及来自其原始代码页的字符的位值(可能也可能不与同一文档中的其他值一致)。

由于 Excel 在导出之前正确呈现了文本,我相信此时我们应该能够将高字符编码为其 HTML 等价物,然后导出为 CSV,从而确保 CSV 仅是 ASCII。

(或者,我们可以音译为纯 ASCII,但这似乎是一种糟糕的方法,可能并不容易......)

4

1 回答 1

5

pgc01 有一个函数似乎可以在这里解决问题: http ://www.mrexcel.com/forum/showpost.php?p=2091183&postcount=7

希望我可以引用他们的代码:

Function CodeUni(s As String, Optional bHex As Boolean = True)
    If bHex Then
        CodeUni = Right("0000" & Hex(AscW(Left(s, 1))), 4)
    Else
        CodeUni = AscW(Left(s, 1))
    End If
End Function

如果您不确定如何将其放入 Excel 工作簿,本指南非常有用: http: //office.microsoft.com/en-us/excel-help/create-custom-functions-in-excel- 2007-HA010218996.aspx

总结一下:

  1. Alt+F11 调出 VBA 编辑器
  2. 插入 > 模块
  3. 把上面的代码粘贴进去
  4. 在工作表中使用函数!

为了将其作为正确的 HTML 编码的 unicode 实体,我使用了:

="&#"&CodeUni(C1, TRUE)&";"

在我的测试用例中,我在 C1 和 E1 中有 ﻼ,公式显示为 &#FEFC;

于 2011-08-16T12:40:35.123 回答