Etapa 3: acessar o serviço da Web
Após ter adicionado uma referência ao Serviços Web do Excel para seu projeto, o próximo etapa é criar uma instância da classe proxy da serviço da Web. Você pode, em seguida, acessar os métodos de serviço da Web por chamado nos métodos de classe proxy. Quando seu aplicativo chama esses métodos, codificar classe de proxy gerada pelo Visual Studio trata as comunicações entre o aplicativo e o serviço da Web.
Primeiro você cria uma instância da classe, ExcelWebService proxy do serviço da Web. Próxima você chamar vários métodos e propriedades usando a classe proxy da serviço da Web.
Você usa as chamadas para aberto um pasta de trabalho, get a sessão identificação, transmitir no credenciais de usar como padrão, defina a coordenar intervalo objeto, get o intervalo que usa a coordenar intervalo objeto, fechar o pasta de trabalho e capturar as exceções SOAP.
Acessar o serviço da Web
Para adicionar diretivas
When you added the Web reference earlier, it created an object named ExcelService in a namespace called <yourProject>.<webReferenceName>. Este exemplo, o objeto é nomeado SampleApplication.ExcelWebService. Esta explicação passo a passo também mostra como capturar exceções SOAP. Para fazer isso, use o objeto System.Web.Services.Protocols System.Web.Services.Protocols. O espaço para nome System.Web.Services.Protocols System.Web.Services.Protocols consiste de classes que definem os protocolos usados para transmitir dados através de rede com fio durante a comunicação entre clientes serviço da Web XML e XML Web Services criado usando ASP.NET.
Para facilitar usando esses objetos, você deve primeiro adicionar os espaços para nome como as diretivas para o arquivo Class1.cs. Dessa forma, se você usar essas diretivas, você não precisa para totalmente qualificar os tipos no espaço para nome.Para adicionar essas diretivas, adicionar o seguinte codificar para o início da sua codificar em arquivo de Class1.cs, após
using System:
using SampleApplication.ExcelWebService; using System.Web.Services.Protocols;
Para chamar a serviço da Web
Criar uma instância e inicializar o objeto proxy serviço da Web adicionando o seguinte codificar após o colchete de abertura em
static void Main(string[] args)
:ExcelService es = new ExcelService();
Adicione o seguinte codificar para criar uma matriz status e intervalo coordenar objetos:
Status[] outStatus; RangeCoordinates rangeCoordinates = new RangeCoordinates();
Adicionar a codificar a apontar para a planilha desejar para acessar. Este exemplo, a planilha é chamado "Sheet1". Adicione o seguinte ao seu codificar:
string sheetName = "Sheet1";
Dica
Certifique-se de que a pasta de trabalho você desejar para aberto tem uma planilha chamado "Sheet1" que contém valores.Como alternativa, você pode alteração "Sheet1" na codificar com o nome da sua planilha.
Add the following code to point to the workbook you want to open
:string targetWorkbookPath = "http://myserver02/example/Shared%20Documents/Book1.xlsx";
Importante
Altere o caminho pasta de trabalho para coincidir com a localidade do pasta de trabalho que você está usando para este explicação passo a passo.Certifique-se de que exista o pasta de trabalho e que a localidade onde o pasta de trabalho é salvo é uma de confiança localidade.Usando um HTTP URL para apontar para a localidade de um pasta de trabalho permite acessá-lo remotamente.
Dica
Você pode get o caminho para um pasta de trabalho em Microsoft Office do SharePoint Server 2007 clicando com o botão direito do mouse o pasta de trabalho e selecionando Copy Shortcut .Como alternativa, você pode selecionar propriedades e copiar o caminho para o pasta de trabalho a partir daí.
Adicione o seguinte codificar para definir as credenciais para a solicitação.
Dica
Você para explicitamente definiu as credenciais mesmo se você pretende usar as credenciais usar como padrão.
es.Credentials = System.Net.CredentialCache.DefaultCredentials;
Adicione o seguinte codificar para aberto a pasta de trabalho e apontar para a de confiança localidade onde se encontra o pasta de trabalho. Local de codificar em um try bloco tente:
try { string sessionId = es.OpenWorkbook(targetWorkbookPath, "en-US", "en-US", out outStatus);
Adicione o seguinte codificar para preparar um objeto definir coordenadas intervalo e chamar o GetRange método GetRange. A codificar também irá imprimir o número total de linhas no intervalo e o valor em um intervalo específico.
rangeCoordinates.Column = 3; rangeCoordinates.Row = 9; rangeCoordinates.Height = 18; rangeCoordinates.Width = 12; object[] rangeResult1 = es.GetRange(sessionId, sheetName, rangeCoordinates, false, out outStatus); Console.WriteLine("Total rows in range: " + rangeResult1.Length); Console.WriteLine("Value in range is: " + ((object[])rangeResult1[5])[2]);
Adicionar codificar para fechar a pasta de trabalho e fechar a atual sessão. Também adicionar uma fechar colchete para finalizar o bloco try try.
Importante
É recomendável para fechar o pasta de trabalho se tiver terminado usando a sessão.Este irá fechar a sessão e livre recursos.
es.CloseWorkbook(sessionId); }
Adicionar um bloco catch capturar para capturar a exceção SOAP e imprimir a mensagem exceção:
catch (SoapException e) { Console.WriteLine("SOAP Exception Message: {0}", e.Message); }
Concluir de código
O seguinte amostra de código é o completo codificar em arquivo de exemplo Class1.cs descrito os procedimentos anteriores.
Importante
Tornar muda para o caminho pasta de trabalho, nome folha e assim por diante, como apropriado.
using System;
using SampleApplication.ExcelWebService;
using System.Web.Services.Protocols;
namespace SampleApplication
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
// Instantiate the Web service and create a status array object and range coordinate object
ExcelService es = new ExcelService();
Status[] outStatus;
RangeCoordinates rangeCoordinates = new RangeCoordinates();
string sheetName = "Sheet1";
// Using workbookPath this way will allow
// you to call the workbook remotely.
// TODO: change the workbook path to
// point to workbook in a trusted location
// that you have access to
string targetWorkbookPath = "http://myserver02/example/Shared%20Documents/Book1.xlsx";
//you can also use .xlsb files, for example, //"http://myserver02/example/Shared%20Documents/Book1.xlsb";
// Set credentials for requests
es.Credentials = System.Net.CredentialCache.DefaultCredentials;
//Console.WriteLine("Cred: {0}", es.Credentials);
try
{
// Call open workbook, and point to the trusted
// location of the workbook to open.
string sessionId = es.OpenWorkbook(targetWorkbookPath, "en-US", "en-US", out outStatus);
// Console.WriteLine("sessionID : {0}", sessionId);
// Prepare object to define range coordinates
// and the GetRange method.
rangeCoordinates.Column = 3;
rangeCoordinates.Row = 9;
rangeCoordinates.Height = 18;
rangeCoordinates.Width = 12;
object[] rangeResult1 = es.GetRange(sessionId, sheetName, rangeCoordinates, false, out outStatus);
Console.WriteLine("Total Rows in Range: " + rangeResult1.Length);
Console.WriteLine("Value in range is: " + ((object[])rangeResult1[5])[3]);
// Close workbook. This also closes session.
es.CloseWorkbook(sessionId);
}
catch (SoapException e)
{
Console.WriteLine("SOAP Exception Message: {0}", e.Message);
}
// catch (Exception e)
// {
// Console.WriteLine("Exception Message: {0}", e.Message);
// }
// Console.ReadLine();
}
}
}
Consulte também
Outros recursos
Etapa 1: Criar o projeto do cliente do serviço da Web
Etapa 2: Adicionar uma referência da Web
Etapa 4: Criando e testando o aplicativo
Walkthrough: desenvolvendo um aplicativo personalizado usando os serviços da Web Excel
Acessando o SOAP API
Como a: relação de confiança locais de pasta de trabalho com scripts