Como: de forma programática adicionar uma Excel da Web de acesso da Web Part a uma página
Este exemplo mostra como adicionar programaticamente um O Excel Web do Access Web Part para uma página SharePoint. Ele também mostra como para exibir um pasta de trabalho do Excel programaticamente em um O Excel Web do Access Web Part.
O seguinte projeto usa 2005 Microsoft Visual Studio.
Dica
Dependendo das configurações que você usar o ambiente de desenvolvimento integrado do Visual Studio (IDE), o processo criar um projeto pode ser um pouco diferentes.
Dica
Pressupõe-se que você tenha já criou uma biblioteca documento SharePoint e tornou uma de confiança localidade.Para obter mais informações sobre esse assunto, consulte Como a: um local relação de confiança e Como a: relação de confiança locais de pasta de trabalho com scripts.
Adicionando uma referência
A seguinte etapas apresentação como para localizar Microsoft.Office.Excel.WebUI.dll e como adicionar uma referência a ele.
Dica
Presume-se que você já tiver copiado Microsoft.Office.Excel.WebUI.dll do cache global de assemblies para uma pasta de sua escolha.Para obter mais informações sobre como localizar e copiar Microsoft.Office.Excel.WebUI.dll, consulte Como a: localizar e copiar Microsoft.Office.Excel.WebUI.dll.
Para adicionar uma referência a Microsoft.Office.Excel.WebUI.dll
O menu do projeto, clique em Adicionar Referência .
A Add Reference diálogo caixa, clique em Procurar .
Dica
Você pode também aberto o caixa de diálogo Add Reference no painel Gerenciador de Soluções right-clicking referências e selecionando Add Reference .
Vá para a localidade de Microsoft.Office.Excel.WebUI.dll.
Selecione Microsoft.Office.Excel.WebUI.dll e clique OK .
Clique em Adicionar Referência , e uma referência a Microsoft.Office.Excel.WebUI.dll será adicionada ao seu projeto.
Criar uma instância uma Web Part
Para criar instância de Excel Web Access Web Part
Adicione o namespace Microsoft.Office.Excel.WebUI como uma diretiva à sua codificar para que quando você usa os tipos neste espaço para nome, você não precisa para totalmente qualificá-los:
using Microsoft.Office.Excel.WebUI;
Criar uma instância e inicializar o O Excel Web do Access Web Part como segue:
// class ExcelWebRenderer ewaWebPart = new ExcelWebRenderer();
Para exibir um pasta de trabalho programaticamente
Neste exemplo, a
AddWebPart
AddWebPart método leva no caminho para uma localidade pasta de trabalho do Excel como um argumento. O usuário fornece o caminho digitando em um caixa de texto Windows Form e clicando em um botão:public bool AddWebPart(string sitename, string book) { ... } private void AddEWAButton_Click(object sender, EventArgs e) { siteurl = textBox1.Text; bookuri = textBox2.Text; succeeded = AddWebPart(siteurl, bookuri); if (succeeded) { MessageBox.Show( success, appname, MessageBoxButtons.OK, MessageBoxIcon.Information); progressBar1.Value = 1; } }
Importante
Certifique-se de que a localidade onde o pasta de trabalho é salvo é uma de confiança localidade.
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í.
Você pode exibir um pasta de trabalho do Excel programaticamente usando a seguinte codificar:
using Microsoft.Office.Excel.WebUI; namespace AddEWATool { public partial class Form1 : Form { ... /// <param name="sitename">URL of the ///Windows SharePoint Services site</param> /// <param name="book">URI to the workbook</param> public bool AddWebPart(string sitename, string book) { ... ExcelWebRenderer ewaWebPart = new ExcelWebRenderer(); ewaWebPart.WorkbookUri = book;
Exemplo
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace AddEWATool
{
/// <summary>
/// Program class
/// </summary>
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
/// <param name="args">arguments</param>
/// <returns>int</returns>
[STAThread]
public static int Main(string[] args)
{
//Application.EnableVisualStyles();
if (args.Length == 0)
{
Application.Run(new Form1());
return 1;
}
else
{
Commandline comm = new Commandline();
int worked = comm.CommandLineAddWebPart(args);
return worked;
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.Office.Excel.WebUI;
namespace AddEWATool
{
/// <summary>
/// Form1 class derived from System.Windows.Forms
/// </summary>
public partial class Form1 : Form
{
private string siteurl;
private string bookuri;
private bool succeeded;
private string appname = "AddEWATool";
private string specifyinput = "Please add a site URL,
for example, http://myserver/site/";
private string siteproblem = "There was a problem with
the site name. Please check that the site exists.";
private string addproblem = "There was a problem adding the
Web Part.";
private string success = "Web Part successfully added.";
private SPSite site;
private SPWeb TargetWeb;
private SPWebPartCollection sharedWebParts;
/// <summary>
/// Class Constructor
/// </summary>
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Method to add the Excel Web Access Web Part
/// </summary>
/// <param name="sitename">URL of the
///Windows SharePoint Services site</param>
/// <param name="book">URI to the workbook</param>
/// <returns>bool</returns>"
public bool AddWebPart(string sitename, string book)
{
bool b = false;
progressBar1.Visible = true;
progressBar1.Minimum = 1;
progressBar1.Maximum = 4;
progressBar1.Value = 1;
progressBar1.Step = 1;
if (String.IsNullOrEmpty(sitename))
{
MessageBox.Show(
specifyinput,
appname,
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
return b;
}
try
{
site = new SPSite(sitename);
TargetWeb = site.OpenWeb();
}
catch (Exception exc)
{
MessageBox.Show(
siteproblem + "\n" + exc.Message,
appname,
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
progressBar1.Value = 1;
return b;
}
progressBar1.PerformStep();
//Get the collection of shared Web Parts
//on the home page
//Log.Comment("Get the collection of
//personal Web Parts on default.aspx");
try
{
sharedWebParts =
TargetWeb.GetWebPartCollection("Default.aspx",
Microsoft.SharePoint.WebPartPages.Storage.Shared);
}
catch (Exception exc)
{
MessageBox.Show(
siteproblem + "\n" + exc.Message,
appname,
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
progressBar1.Value = 1;
return b;
}
progressBar1.PerformStep();
//Instantiate Excel Web Access Web Part
//Add an Excel Web Access Web Part in a shared view
ExcelWebRenderer ewaWebPart = new ExcelWebRenderer();
progressBar1.PerformStep();
ewaWebPart.ZoneID = "Left";
ewaWebPart.WorkbookUri = book;
try
{
sharedWebParts.Add(ewaWebPart);
}
catch (Exception exc)
{
MessageBox.Show(
addproblem + "\n" + exc.Message,
appname,
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
progressBar1.Value = 1;
return b;
}
progressBar1.PerformStep();
b = true;
return b;
}
/// <summary>
/// Button1 click handler
/// </summary>
/// <param name="sender">caller</param>
/// <param name="e">event</param>
private void AddEWAButton_Click(object sender,
EventArgs e)
{
siteurl = textBox1.Text;
bookuri = textBox2.Text;
succeeded = AddWebPart(siteurl, bookuri);
if (succeeded)
{
MessageBox.Show(
success,
appname,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
progressBar1.Value = 1;
}
}
}
Programação robusta
O pasta de trabalho do Excel que você está usando deve estar em uma de confiança localidade.
Consulte também
Outros recursos
Como a: relação de confiança locais de pasta de trabalho com scripts
Alertas de Serviços Excel
Configuração de Serviços Excel Questões e dicas
Como a: localizar e copiar Microsoft.Office.Excel.WebUI.dll