如何:保存工作簿
Excel Web Services 是 Excel Services 的前端界面。一般情况下,Excel Services 并不创建、修改或保存文件,它只读取文件以启动会话。因此,Excel Web Services 没有用于保存工作簿的方法。
若要保存工作簿,一般请使用目标文件存储区的 API。例如:
如果要将 Excel 文件保存到 Windows SharePoint Services 3.0 文档库,请使用 Windows SharePoint Services 3.0 对象模型或 Web 服务。
如果要将 Excel 文件保存到流、本地文件或文件共享,请使用 Microsoft .NET Framework 库。
如果要将 Excel 文件保存到 HTTP 位置,请使用 Web 分布式创作和版本管理 (WebDAV)。
备注
WebDAV 也称为 HTTP/DAV 协议或 DAV 协议。
可以使用各种 .NET Framework 库保存工作簿。下例介绍其中一种方法。
示例
下面的示例代码使用 Console.OpenStandardOutput 方法获取标准输出流。然后使用 System.IO.BinaryWriter.Write 方法写入由 Web 服务的 GetWorkbook 方法返回的整个工作簿或快照文件。它使用 stdout 和命令行文件名参数将快照写入文件,如以下代码所示:
BinaryWriter binaryWriter =
new BinaryWriter(Console.OpenStandardOutput());
binaryWriter.Write(workbook);
binaryWriter.Close();
有关 OpenStandardOutput 和 Write 方法的详细信息,请参阅 Microsoft .NET Framework 类库文档。
下例介绍如何获取快照然后将其写入标准输出。有关快照的详细信息,请参阅如何:获取整个工作簿或快照主题。有关 GetWorkbook 方法的详细信息,请参阅 Excel Web Services 参考文档。
// Open the workbook, then call GetWorkbook
// and close the session.
string sessionId = xlService.OpenWorkbook(args[0], "en-US", "en-US", out status);
// Get a full snapshot of the workbook.
byte[] workbook = xlService.GetWorkbook(sessionId, WorkbookType.FullWorkbook, out status);
// Close workbook. This also closes the session.
status = xlService.CloseWorkbook(sessionId);
// Write the resulting Excel file to stdout, as a binary stream.
BinaryWriter binaryWriter = new BinaryWriter(Console.OpenStandardOutput());
binaryWriter.Write(workbook);
binaryWriter.Close();
See Also
任务
演练:使用 Excel Web Services 开发自定义应用程序