【问题标题】:How can I automate the checkout of an excel spreadsheet from a sharepoint document library, edit the spreadsheet, and check it back in?如何自动从共享点文档库中签出 Excel 电子表格、编辑电子表格并重新签入?
【发布时间】:2020-07-04 20:17:25
【问题描述】:

我有几百个 Excel 电子表格存储在 SharePoint 2010 文档库中。

这些电子表格中的很多都包含硬编码的 URL,需要根据我们的 SharePoint 网站的一些重组来更新为新的 URL。

我想遍历所有电子表格,打开它们并进行搜索和替换,然后将它们写回 SharePoint。

作为记录,我已经知道如何在 SharePoint 中迭代 excel 电子表格(创建对 SPFile 的引用)并运行结帐和检查命令。

我对使用 Excel 的 OLE 自动化进行查找和替换非常满意。

我正在努力解决如何弥合两者之间的差距。在我获取一个文件的引用并检查它之后,我怎样才能对它进行 ole 自动化?通常我相信要打开对文件的引用,我需要一个文件路径,但即使我使用“使用本地”选项签出,文件系统中也没有创建文件(即使我不相信它可以与临时文件一起使用。)

似乎我应该能够将它从流加载到 VBA Excel 自动化对象中,但我不确定如何。

有什么想法吗?

【问题讨论】:

  • 您能否向我们展示您迄今为止构建的内容并告诉我们缺少哪个部分?
  • 我刚刚查看了 VBA 对象模型并注意到工作簿对象有一个 Checkout 方法。描述是“将工作簿从服务器复制到本地计算机进行编辑”......正是我想要的。如果可行,我会将代码发布到我的答案中。赛斯

标签: c# .net excel sharepoint sharepoint-2010


【解决方案1】:

假设您将此工具构建为在 SharePoint 服务器上运行的控制台应用程序。在控制台应用程序代码中:

  1. 使用 SharePoint 对象模型签出文件
  2. 使用 .Net WebClient.DownloadFile 方法将文件下载到本地系统
  3. 运行您的自动化代码
  4. 使用 SharePoint 对象模型上传并签入修改后的文件

我应该指出,一些服务器管理员不允许自动化代码在服务器本身上运行。在这种情况下,请在客户端计算机上运行控制台应用程序并使用 SharePoint 列表 Web 服务进行签入和签出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多