2

我编写了一些生成 Excel XML 文件格式的 C# 代码,我目前正在使用 Microsoft Office 2010 Professional Plus。此 XML 文件包含许多工作表,工作表可能包含数千行数据。工作表生成多个单元格,但是每个单元格中的文本可能被格式化为不同的字体颜色(而不是使用全局单元格字体颜色)——这可以使用类似于下面提取的一些 XML;

<Cell ss:StyleID="Normal">
    <ss:Data ss:Type="String" xmlns="http://www.w3.org/TR/REC-html40">
        <Font html:Color="Red">Text in red</Font>
        <Font html:Color="Blue">text in blue</Font>
    </ss:Data>
</Cell>

但是,如果我生成一个大型工作表,其中有很多这样的单元格,它会导致 Excel 的行为“有点奇怪”。奇怪的是,我的意思是当我尝试查看工作表时,我看到了一些奇怪的渲染伪影 - 从电子表格的顶部开始,它会慢慢地逐行渲染,直到大约第 20 行,此时它会暂停,再次自行清除,并重复该过程,这将继续导致 Excel 变得无响应,直到我使用任务管理器将其杀死。

有人能对这个问题有所了解吗?即使我是一名软件开发人员,我也不确定这是一个编程问题,我倾向于相信 Excel 可能无法处理这种性质的“大型”文档,搜索谷歌似乎没有关于这个主题的信息,但很难找到合适的关键词。对于 Excel,这似乎是一件相当深奥的事情。

我尝试将 XML 文件保存为 XLSX 格式并重新打开它,但运气不佳。我还尝试生成一个较小的数据集,使 Excel 表现正常。我的台式电脑应该足够强大来处理这个问题,大量的 RAM 和刚从店里出来的。

任何帮助表示赞赏,感谢您的时间。

4

1 回答 1

2

工作表生成多个单元格,但是每个单元格中的文本可能被格式化为不同的字体颜色(而不是使用全局单元格字体颜色)

需要注意的一件事是,Excel 对工作表中允许的唯一格式的数量有限制。如果您使用内联字符串格式(如示例中所示)作为单元格的一般格式,那么您可能会超出此限制。

在 Excel 2007 中,唯一单元格格式的限制为 64,000,但在应用于 Excel 2003 格式的电子表格 XML 时可能低至 4000。

因此,如果超出单元格格式限制,您可能需要重新使用某些全局单元格格式。

于 2013-08-30T09:13:12.797 回答