Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Beispiel wird gezeigt, wie Sie einer SharePoint-Seite programmgesteuert ein Excel Web Access-Webpart hinzufügen. Außerdem erfahren Sie, wie Sie eine Excel-Arbeitsmappe programmgesteuert in einem Excel Web Access-Webpart anzeigen.
Im folgenden Projekt wird Microsoft Visual Studio verwendet.
Hinweis
Abhängig von der Visual Studio-Version und den Einstellungen der Visual Studio IDE (integrierte Entwicklungsumgebung) weichen der Prozess und die Schritte zum Erstellen eines Visual Studio-Projekts möglicherweise geringfügig von den in diesem Thema erläuterten Verfahren ab.
Hinweis
Es wird davon ausgegangen, dass Sie bereits eine SharePoint-Dokumentbibliothek erstellt und als vertrauenswürdigen Speicherort festgelegt haben. Weitere Informationen finden Sie unter How to: Trust a Location.
Hinzufügen eines Verweises
The following steps show how to locate Microsoft.Office.Excel.WebUI.dll and how to add a reference to it. Repeat for Microsoft.Office.Excel.WebUI.Internal.dll and Microsoft.SharePoint.dll.
Hinweis
s wird davon ausgegangen, dass Sie „Microsoft.Office.Excel.WebUI.dll“ und „Microsoft.Office.Excel.WebUI.Internal.dll“ bereits aus dem globalen Assemblycache in einen Ordner Ihrer Wahl kopiert haben. Weitere Informationen zum Suchen und Kopieren von Microsoft.Office.Excel.WebUI.dll und Microsoft.Office.Excel.WebUI.Internal.dll finden Sie unter Vorgehensweise: Suchen und Kopieren von Microsoft.Office.Excel.WebUI.dll und Microsoft.Office.Excel.WebUI.Internal.dll.
So fügen Sie einen Verweis auf Microsoft.Office.Excel.WebUI.dll hinzu
On the Project menu, click Add Reference.
In the Add Reference dialog box, click Browse.
Hinweis
Sie können das Dialogfeld Verweis hinzufügen auch im Bereich Projektmappen-Explorer öffnen, indem Sie mit der rechten Maustaste auf Verweise klicken und Verweis hinzufügen auswählen.
Navigieren Sie zum Speicherort von Microsoft.Office.Excel.WebUI.dll.
Select Microsoft.Office.Excel.WebUI.dll, and then click OK.
Click Add Reference. A reference to Microsoft.Office.Excel.WebUI.dll is added to your project.
Instanziieren eines Webparts
So instanziieren Sie das Excel Web Access-Webpart
Fügen Sie dem Code den Microsoft.Office.Excel.WebUI-Namespace als Direktive hinzu, sodass Sie die Typen in diesem Namespace nicht vollständig qualifizieren müssen:
using Microsoft.Office.Excel.WebUI;
Imports Microsoft.Office.Excel.WebUI
Instanziieren und initialisieren Sie das Excel Web Access-Webpart wie folgt:
ExcelWebRenderer ewaWebPart = new ExcelWebRenderer();
Dim ewaWebPart As New ExcelWebRenderer()
To display a workbook programmatically
In diesem Beispiel verwendet die
AddWebPart()
-Methode den Pfad zu einem Speicherort einer Excel-Arbeitsmappe als Argument. The user provides the path by typing in a Windows Forms text box and clicking a button.Sample code provided by: Daniel Mullowney, Microsoft Corporation
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; } }
Public Function AddWebPart(ByVal sitename As String, ByVal book As String) As Boolean ... End Function Private Sub AddEWAButton_Click(ByVal sender As Object, ByVal e As EventArgs) siteurl = textBox1.Text bookuri = textBox2.Text succeeded = AddWebPart(siteurl, bookuri) If succeeded Then MessageBox.Show(success, appname, MessageBoxButtons.OK, MessageBoxIcon.Information) progressBar1.Value = 1 End If End Sub
Wichtig
Stellen Sie sicher, dass der Speicherort, an dem die Arbeitsmappe gespeichert ist, vertrauenswürdig ist.
Mit dem folgenden Code können Sie eine Excel-Arbeitsmappe programmgesteuert anzeigen.
Sample code provided by: Daniel Mullowney, Microsoft Corporation
... // Instantiate Excel Web Access web part. // Add an Excel Web Access web part in a shared view. ExcelWebRenderer ewaWebPart = new ExcelWebRenderer(); ewaWebPart.WorkbookUri = book; progressBar1.PerformStep(); try { webPartManager.AddWebPart(ewaWebPart, "Left", 0); } catch (Exception exc) { MessageBox.Show( addWebPartError + "\\n" + exc.Message, appName, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); progressBar1.Value = 1; return b;
'Instantiate Excel Web Access web part. 'Add an Excel Web Access web part in a shared view. Dim ewaWebPart As New ExcelWebRenderer() ewaWebPart.WorkbookUri = book progressBar1.PerformStep() Try webPartManager.AddWebPart(ewaWebPart, "Left", 0) Catch exc As Exception MessageBox.Show(addWebPartError & vbLf & exc.Message, appName, MessageBoxButtons.OK, MessageBoxIcon.Asterisk) progressBar1.Value = 1 Return b End Try
Beispiel
The following example is a Windows Forms application that enables a user to enter information on a SharePoint site and display an Excel workbook saved in a trusted location programmatically. Es erstellt programmgesteuert ein Excel Web Access-Webpart auf der seite default.aspx der angegebenen Website und zeigt die angegebene Excel-Arbeitsmappe an.
The code sample is the code from the Form1.cs and Form1.vb example files described in the previous procedures. The code sample uses two text boxes, a progress bar, and a button. The code is only a portion of the Windows Forms project. For example, the code involving the layout of the form is not shown.
Sample code provided by: Daniel Mullowney, Microsoft Corporation
namespace AddEWATool
{
using System;
using System.Windows.Forms;
using Microsoft.Office.Excel.WebUI;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
/// <summary>
/// Form1 class derived from System.Windows.Forms.
/// </summary>
public partial class Form1 : Form
{
private string appName = "AddEWATool";
private string specifyInputError = "Please add a site URL, for example: http://myserver/site/";
private string openSiteError = "There was a problem with the site name. Please check that the site exists.";
private string addWebPartError = "There was a problem adding the web part.";
private string successMessage = "web part successfully added.";
/// <summary>
/// Add the Excel Web Access web part to the Default.aspx page of the specified site.
/// </summary>
/// <param name="siteName">URL of the SharePoint site</param>
/// <param name="book">URI to the workbook</param>
/// <returns>Returns true if the WebPart was successfully added; otherwise, false.</returns>
public bool AddWebPart(string siteName, string book)
{
SPSite site = null;
SPWeb targetWeb = null;
SPLimitedWebPartManager webPartManager = null;
bool b = false;
progressBar1.Visible = true;
progressBar1.Minimum = 1;
progressBar1.Maximum = 4;
progressBar1.Value = 1;
progressBar1.Step = 1;
if (String.IsNullOrEmpty(siteName))
{
MessageBox.Show(
specifyInputError,
appName,
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
return b;
}
try
{
try
{
site = new SPSite(siteName);
targetWeb = site.OpenWeb();
}
catch (Exception exc)
{
MessageBox.Show(
openSiteError + "\\n" + exc.Message,
appName,
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
progressBar1.Value = 1;
return b;
}
progressBar1.PerformStep();
try
{
// Get the shared web part manager on the Default.aspx page.
webPartManager = targetWeb.GetLimitedWebPartManager(
"Default.aspx",
System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
}
catch (Exception exc)
{
MessageBox.Show(
openSiteError + "\\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();
ewaWebPart.WorkbookUri = book;
progressBar1.PerformStep();
try
{
webPartManager.AddWebPart(ewaWebPart, "Left", 0);
}
catch (Exception exc)
{
MessageBox.Show(
addWebPartError + "\\n" + exc.Message,
appName,
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
progressBar1.Value = 1;
return b;
}
}
finally
{
if (site != null)
{
site.Dispose();
}
if (targetWeb != null)
{
targetWeb.Dispose();
}
if (webPartManager != null)
{
webPartManager.Dispose();
}
}
progressBar1.PerformStep();
b = true;
return b;
}
/// <summary>
/// AddEWAButton click handler.
/// </summary>
/// <param name="sender">caller</param>
/// <param name="e">event</param>
private void AddEWAButton_Click(object sender, EventArgs e)
{
string siteUrl = textBox1.Text;
string bookUri = textBox2.Text;
bool succeeded = AddWebPart(siteUrl, bookUri);
if (succeeded)
{
MessageBox.Show(
successMessage,
appName,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
progressBar1.Value = 1;
}
}
}
}
Imports System
Imports System.Windows.Forms
Imports Microsoft.Office.Excel.WebUI
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.WebPartPages
Namespace AddEWATool
''' <summary>
''' Form1 class derived from System.Windows.Forms.
''' </summary>
Partial Public Class Form1
Inherits Form
Private appName As String = "AddEWATool"
Private specifyInputError As String = "Please add a site URL, for example, http://myserver/site/"
Private openSiteError As String = "There was a problem with the site name. Please check that the site exists."
Private addWebPartError As String = "There was a problem adding the web part."
Private successMessage As String = "web part successfully added."
''' <summary>
''' Add the Excel Web Access web part to the Default.aspx page of the specified site.
''' </summary>
''' <param name="siteName">URL of the SharePoint site</param>
''' <param name="book">URI to the workbook</param>
''' <returns>Returns true if the WebPart was successfully added; otherwise, false.</returns>
Public Function AddWebPart(ByVal siteName As String, ByVal book As String) As Boolean
Dim site As SPSite = Nothing
Dim targetWeb As SPWeb = Nothing
Dim webPartManager As SPLimitedWebPartManager = Nothing
Dim b As Boolean = False
progressBar1.Visible = True
progressBar1.Minimum = 1
progressBar1.Maximum = 4
progressBar1.Value = 1
progressBar1.Step = 1
If String.IsNullOrEmpty(siteName) Then
MessageBox.Show(specifyInputError, appName, MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
Return b
End If
Try
Try
site = New SPSite(siteName)
targetWeb = site.OpenWeb()
Catch exc As Exception
MessageBox.Show(openSiteError & vbLf & exc.Message, appName, MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
progressBar1.Value = 1
Return b
End Try
progressBar1.PerformStep()
Try
' Get the shared web part manager on the Default.aspx page.
webPartManager = targetWeb.GetLimitedWebPartManager( _
"Default.aspx", _
System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared)
Catch exc As Exception
MessageBox.Show(openSiteError & vbLf & exc.Message, appName, MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
progressBar1.Value = 1
Return b
End Try
progressBar1.PerformStep()
'Instantiate Excel Web Access web part.
'Add an Excel Web Access web part in a shared view.
Dim ewaWebPart As New ExcelWebRenderer()
ewaWebPart.WorkbookUri = book
progressBar1.PerformStep()
Try
webPartManager.AddWebPart(ewaWebPart, "Left", 0)
Catch exc As Exception
MessageBox.Show(addWebPartError & vbLf & exc.Message, appName, MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
progressBar1.Value = 1
Return b
End Try
Finally
If Not IsNothing(site) Then
site.Dispose()
End If
If Not IsNothing(targetWeb) Then
targetWeb.Dispose()
End If
If Not IsNothing(webPartManager) Then
webPartManager.Dispose()
End If
End Try
progressBar1.PerformStep()
b = True
Return b
End Function
''' <summary>
''' AddEWAButton click handler.
''' </summary>
''' <param name="sender">caller</param>
''' <param name="e">event</param>
Private Sub AddEWAButton_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim siteUrl As String = textBox1.Text
Dim bookUri As String = textBox2.Text
Dim succeeded As Boolean = AddWebPart(siteUrl, bookUri)
If succeeded Then
MessageBox.Show(successMessage, appName, MessageBoxButtons.OK, MessageBoxIcon.Information)
progressBar1.Value = 1
End If
End Sub
End Class
End Namespace
Robuste Programmierung
The Excel workbook that you are using must be in a trusted location.