Обновление данных
Дата последнего изменения: 3 декабря 2009 г.
Применимо к: SharePoint Server 2010
В этом примере показано извлечение обновленных данных из внешних источников данных для открытой рабочей книги с использованием метода Refresh. В веб-службах Excel используется следующая сигнатура метода Refresh:
public Status[] Refresh (string sessionId, string connectionName)
Public Function Refresh(ByVal sessionId As String, ByVal connectionName As String) As Status()
End Function
При прямом связывании с библиотекой Microsoft.Office.Excel.Server.WebServices.dll метод Refresh будет иметь следующую сигнатуру:
public void Refresh (string sessionId, string connectionName,
out Status[] status)
Public Sub Refresh(ByVal sessionId As String, ByVal connectionName As String, <System.Runtime.InteropServices.Out()> ByRef status() As Status)
End Sub
Аргумент connectionName ссылается на имя подключения в рабочей книге Microsoft Office Excel 2007.
С помощью метода Refresh можно обновить одно подключение к данным в рабочей книге или все подключения. Такое поведение используется, если подключения были созданы без функции обновления при открытии.
При обновлении подключения обновляются данные и все объекты, использующие его. Чтобы обновить все доступные подключения в рабочей книге, следует передать пустую строку подключения или значение null в качестве аргумента имени подключения.
Попытка обновления выполняется независимо от используемого типа проверки подлинности без последующих запросов или подтверждений.
Дополнительные сведения о методе Refresh см. в справочной документации по веб-службам Excel.
Пример
В следующем примере кода показан вызов метода Refresh с помощью веб-служб Excel. В этом примере используется имя подключения "MyInventoryConnection":
// Instantiate the Web service.
ExcelService xlservice = new ExcelService();
Status[] outStatus;
RangeCoordinates rangeCoordinates = new RangeCoordinates();
string sheetName = "Sheet3";
// Set the path to the workbook to open.
// TODO: Change the path to the workbook
// to point to a workbook you have access to.
// The workbook must be in a trusted location.
string targetWorkbookPath =
http://myserver02/example/Shared%20Documents/Book1.xlsx";
// Set credentials for requests.
xlservice.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Call open workbook, and point to the trusted
// location of the workbook to open.
string sessionId = xlservice.OpenWorkbook(targetWorkbookPath, "en-US", "en-US", out outStatus);
// Prepare object to define range coordinates.
rangeCoordinates.Column = 0;
rangeCoordinates.Row = 0;
rangeCoordinates.Height = 8;
rangeCoordinates.Width = 10;
// Set the cell located in the first row and
// ninth column to 300.
xlservice.SetCell(sessionId, sheetName, 0, 8, 300);
xlservice.Refresh(sessionId, "MyInventoryConnection");
' Instantiate the Web service.
Dim xlservice As New ExcelService()
Dim outStatus() As Status
Dim rangeCoordinates As New RangeCoordinates()
Dim sheetName As String = "Sheet3"
' Set the path to the workbook to open.
' TODO: Change the path to the workbook
' to point to a workbook you have access to.
' The workbook must be in a trusted location.
' Set credentials for requests.
Dim targetWorkbookPath As String = http: xlservice.Credentials = System.Net.CredentialCache.DefaultCredentials 'myserver02/example/Shared%20Documents/Book1.xlsx";
' Call open workbook, and point to the trusted
' location of the workbook to open.
Dim sessionId As String = xlservice.OpenWorkbook(targetWorkbookPath, "en-US", "en-US", outStatus)
' Prepare object to define range coordinates.
rangeCoordinates.Column = 0
rangeCoordinates.Row = 0
rangeCoordinates.Height = 8
rangeCoordinates.Width = 10
' Set the cell located in the first row and
' ninth column to 300.
xlservice.SetCell(sessionId, sheetName, 0, 8, 300)
xlservice.Refresh(sessionId, "MyInventoryConnection")
При прямом связывании с библиотекой Microsoft.Office.Excel.Server.WebServices.dll аналогичный код будет иметь следующий вид:
// Instantiate the ExcelService class.
ExcelService xlservice = new ExcelService();
Status[] outStatus;
RangeCoordinates rangeCoordinates = new RangeCoordinates();
string sheetName = "Sheet3";
// Set the path to the workbook to open.
// TODO: Change the path to the workbook
// to point to a workbook you have access to.
// The workbook must be in a trusted location.
string targetWorkbookPath =
http://myserver02/example/Shared%20Documents/Book1.xlsx";
// Call the open workbook, and point to the trusted
// location of the workbook to open.
string sessionId = xlservice.OpenWorkbook(targetWorkbookPath, "en-US", "en-US", out outStatus);
// Set the cell located in the first row and
// ninth column to 300.
xlservice.SetCell(sessionId, sheetName, 0, 8, 300, out outStatus);
xlservice.Refresh(sessionId, "MyInventoryConnection", out outStatus);
byte[] workbook = xlService.GetWorkbook(sessionId, WorkbookType.FullWorkbook, out status);
// Write the resulting Excel file to stdout
// as a binary stream.
BinaryWriter binaryWriter =
new BinaryWriter(Console.OpenStandardOutput());
binaryWriter.Write(workbook);
binaryWriter.Close();
...
...
' Instantiate the ExcelService class.
Dim xlservice As New ExcelService()
Dim outStatus() As Status
Dim rangeCoordinates As New RangeCoordinates()
Dim sheetName As String = "Sheet3"
' Set the path to the workbook to open.
' TODO: Change the path to the workbook
' to point to a workbook you have access to.
' The workbook must be in a trusted location.
' Call the open workbook, and point to the trusted
' location of the workbook to open.
Dim targetWorkbookPath As String = http: String sessionId = xlservice.OpenWorkbook(targetWorkbookPath, "en-US", "en-US", outStatus) 'myserver02/example/Shared%20Documents/Book1.xlsx";
' Set the cell located in the first row and
' ninth column to 300.
xlservice.SetCell(sessionId, sheetName, 0, 8, 300, outStatus)
xlservice.Refresh(sessionId, "MyInventoryConnection", outStatus)
Dim workbook() As Byte = xlService.GetWorkbook(sessionId, WorkbookType.FullWorkbook, status)
' Write the resulting Excel file to stdout
' as a binary stream.
Dim binaryWriter As New BinaryWriter(Console.OpenStandardOutput())
binaryWriter.Write(workbook)
binaryWriter.Close()
...
...
См. также
Задачи
Пошаговое руководство. Разработка настраиваемого приложения с помощью веб-служб Excel
Инструкции по определению надежного расположения
Практическое руководство. Сохранение из клиента Excel на сервер
Получение рабочей книги целиком или ее снимка