科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道从Excel Services获取一个工作簿或快照(1)

从Excel Services获取一个工作簿或快照(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

如果我们要把创作完工作簿文件副本存放在某处,然后发送给某人,那么最好的方式就是使用Excel Web Services。通过Excel Web Services我们可以得到一个工作簿或一个快照。

作者:sunmoonfire 来源:blog 2007年9月2日

关键字: 快照 Excel SharePoint SharePoint2007 Office

  • 评论
  • 分享微博
  • 分享邮件
如果我们要把创作完工作簿文件副本存放在某处,然后发送给某人,那么最好的方式就是使用Excel Web Services。通过Excel Web Services我们可以得到一个工作簿或一个快照。当用户或应用程序请求一个快照时,Excel Services会在服务器端打开Excel文件,刷新数据源,并计算所有Excel公式,最后生成并通过Web服务API发送回一个快照。

下面的例子展示了如何在Excel Web Services中获取:整个工作簿,一个整个文件的快照,或一个文件内某个工作表或对象的可视范围的快照。

Excel Web Services中用GetWorkbook方法得到整个工作簿或某个类型的快照。


获取快照


下面的代码会返回整个
Excek工作簿的一个快照。其中使用WorkbookType.FullSnapshot枚举作为GetWorkbook方法的第二个参数。

byte[] workbook = xlService.GetWorkbook(sessionId, WorkbookType.FullSnapshot, 
out status);
  GetWorkbook方法返回一个字节数组,与载入到会话中的Excel 文件的格式相同。

获取可视项的一个快照

 如果要获取当保存工作薄到服务器上时Excel工作簿作者所选取的可视区域的一个快照,可以使用WorkbookType.PublishedItemsSnapshot 枚举值。如下:

byte[] workbook = xlService.GetWorkbook(sessionId, WorkbookType.PublishedItemsSnapshot, 
out status);

获取整个工作簿

如果要获取整个工作簿在当前会话状态(session state)下的快照,可以使用WorkbookType.FullWorkbook 枚举值。

byte[] workbook = xlService.GetWorkbook(sessionId, WorkbookType.FullWorkbook, 
out status);

WorkbookType.FullWorkbook WorkbookType.FullSnapshot 选项只有在当前用户具有文件的打开权限是才有效。如果用户是只读权限,调用就会失败。

完整的代码

下面的命令行程序接受一个命令行参数,即服务器上工作簿的路径。程序会调用Web服务打开该工作簿并获取一个快照,然后将其write到标准输出上。这样我们将其重定向到一个新的快照文件。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章