0

我有一个 Excel 文件 (.xls),它有大约 1400 行,有一些行以正确的字体显示(在表格单元格和停靠在顶部的公式框中)。但是,有些行在工作表单元格中以正确的字体显示,但如果我选择它并查看公式框,它会以错误的字体(某种错误或不受支持的字体)显示所选行的文本。

我的 excel 文件的内容包含 unicode 文本,我的笔记本电脑安装了最常见的 unicode 字体(只是我的语言需要 unicode 才能正确显示,而且我总是安装许多 unicode 字体)。我正在使用 Excel 2013,但我认为问题与缺少字体无关……也许公式框和工作表单元格使用不同的字体。值得注意的一点是,在公式框中以错误字体显示其内容的所有单元格(我将这些单元格称为 B 组单元格)的格式与其他单元格的字体不同(我将这些单元格称为 A 组单元格)。我尝试将 B 组单元格的字体更改为 A 组单元格的字体,但它们的内容显示为错误的字体(在单元格和公式框中)。

如果每项工作都只处理 Excel 文件,则问题不大,但是我有一个项目必须将此 Excel 文件导入数据库。我尝试了一个演示,它加载了带有很多字体错误的 Excel 文件。这些错误正是我在 Excel 窗口中看到的公式框中显示的错误。我不知道如何解决这个问题。问题是客户假设Excel文件是OK的,看起来是这样的(因为单元格的内容在单元格中显示OK,错误只是在公式框中)。我没有任何理由要求客户提供另一个 Excel 文件。

我正在使用 NPOI 读取 Excel 文件,我认为它读取单元格内容的方式与公式框读取的方式相同,我尝试在读取其字符串之前为每一行应用正确的字体,但它似乎不起作用. 您对此有什么想法吗,我只需要一些建议,不希望有一个完整或完美的解决方案(我知道这并不容易)?我的第一个想法是首先尝试在 Excel 窗口的公式框中以正确/正确的字体显示单元格的内容,然后尝试使用带有 NPOI(或另一个库)的代码来执行此操作,然后正常导入 Excel 文件,我希望有一个更简单的解决方案,可以在读取单元格时提取内容(使用正确的字体)。

你的建议对我解决这个问题很有帮助。谢谢!

==================================================== =========

更新示例 xls 文件xls 文件

4

1 回答 1

0

我在 Win 7 64b 上使用 Excel 2010。

我没有安装 .VnTime 字体,但是由于您的屏幕截图,我看到了您所看到的内容,并且单元格显示的内容(字体格式的文本)与公式栏显示的内容之间似乎存在一些脱节。不知何故,这会影响您的应用程序读取单元格值的方式。

在大多数情况下,将 仅cell作为范围对象读取是安全的。

您可以尝试的三种替代方法是更改​​您的代码以读取:

  • cell.Formula, 或者
  • cell.Text, 或者
  • cell.Value

一个潜在的问题是格式可能是 Excel 独有的,因此如果您的应用程序、数据库或客户端的系统/计算机不支持底层字符集,则这种不匹配错误可能会持续存在。

这里可能有一些附加信息(尽管主要与数字和日期格式有关):

http://blogs.office.com/b/microsoft-excel/archive/2007/11/12/manipulating-and-massaging-data-in-excel.aspx

于 2013-04-20T20:00:59.323 回答