KB0118:Office SharePoint 中的内容爬网失败

  1. Home
  2. 资源
  3. 知识库
  4. KB0118

问题

Office SharePoint 无法完整爬取包含带有 thinkcell 链接的 Excel 文件的内容源,并且在爬网日志中发现以下消息:

Error in the Site Data Web Service. (Invalid high surrogate character (0xXXXX). A high surrogate character must have a value from range (0xD800 - 0xDBFF).)

原因

这是由于 Excel 2000 和 Excel XP 中的一个错误导致的, 该错误会生成包含损坏元数据的 Excel 文件。当向 Excel 文档添加带有链接源的字符串自定义文档属性,而该源无法解析时, 就会出现此问题。在较新版本的 Excel 中, 文档属性值会被设置为某个有效值(例如空字符串)。 但在 Excel 2000 和 Excel XP 中,该值包含无效数据,可能导致 Office SharePoint 爬网程序失败。Excel 文档明确说明, 在源解析完成并更新文档属性值之前,该值会被设置为默认值, 因此此行为是 Excel 2000 和 Excel XP 的错误。

可通过以下步骤复现此问题:

  1. 使用以下链接下载一个非常简单的 Excel 文件: LinkSourceProp.xls。
  2. 使用 Office 2000 或 Office XP Excel 加载该文件,并确保 宏已启用。
  3. 按 Alt+F11 打开宏窗口,并运行 AddDocumentProperty 例程。
  4. 转到 File > Properties,然后选择 Custom 选项卡。
  5. 与新添加的 TestProperty 关联的值是无效数据。
Excel 中的元数据对话框

解决方案

thinkcell 使用自定义文档属性,并且在注意到此行为后, 我们修改了代码,将文档属性添加为布尔类型, 而不是字符串类型。Excel 2000 和 Excel XP 都会将文档属性 设置为有效的布尔值,并且即使链接源 无法解析,该值也会保持有效。

使用 thinkcell 5.0 及更高版本创建的文件采用了此解决方法, 应可被 Office SharePoint 成功爬取。

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