知识库 KB0118

在 Office SharePoint 中执行内容爬网失败

问题

Office SharePoint 无法对包含 Excel 文件(具有 think-cell 链接)的内容源进行完全爬网,在爬网记录中找到以下消息:

Site Data Web 服务中的错误。(无效的高代理项字符 (0xXXXX)。高代理项字符的值必须介于 (0xD800 - 0xDBFF) 范围内。)

原因

此问题是由 Excel 2000 和 Excel XP 中的 Bug 所致,该 Bug 会导致生成元数据已损坏的 Excel 文件。若将具有链接源的字符串自定义文档属性添加到 Excel 文档,但无法对源进行解析,则会发生此问题。在更新版本的 Excel 中,已将文档属性值设为有效的项(例如,空字符串)。但是在 Excel 2000 和 Excel XP 中,该值包含无用字符,可能会导致 Office SharePoint 爬网失败。Excel 文档先明确声明文档属性值已设为默认值,但随后在解析源时进行更新,因此该行为是 Excel 2000 和 Excel XP 的 Bug。

使用以下步骤可以重现该问题:

  1. 使用以下链接下载非常简单的 Excel 文件:LinkSourceProp.xls
  2. 使用 Office 2000 或 Office XP Excel 加载该文件,确保宏处于活动状态。
  3. Alt+F11 打开宏窗口,运行 AddDocumentProperty 例程。
  4. 前往文件属性,然后选择自定义选项卡。
  5. 与新添加的 TestProperty 关联的值是无用字符。
Excel 中的元数据对话框

解决方案

think-cell 使用自定义文档属性,我们注意到该行为后,已改变代码,以添加类型为布尔值(而非字符串)的文档属性。Excel 2000 和 Excel XP 会将文档属性设为有效的布尔值,此值在无法解析链接源时仍保持有效。

使用 think-cell 5.0 或更高版本创建的文件若采用这项解决方法,将能由 Office SharePoint 成功爬网。

如需有关在 Excel 2000 或 Excel XP 生成的文件中对损坏的文档属性值进行修复的建议,请直接联系 Microsoft Office 支持。

think-cell 使用 Cookie 来改进本网站的功能、性能和安全性。如果您想使用本网站的全部功能,则需要您的同意。可在我们的隐私权政策中找到有关 think-cell 如何使用 Cookie、您的同意和您的隐私权的更多信息。