Compartilhar via


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

  1. O menu do projeto, clique em Adicionar Referência .

  2. 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 .

  3. Vá para a localidade de Microsoft.Office.Excel.WebUI.dll.

  4. Selecione Microsoft.Office.Excel.WebUI.dll e clique OK .

  5. 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

  1. 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;
    
  2. 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

  1. 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í.

  2. 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