Я использовал пример от Microsoft о том, как создать документ Word из кода позади.Я реализовал этот код в простой веб-части, чтобы сначала протестировать его.У меня есть кнопка, которая при нажатии создает документ Word, но в настоящее время ничего не происходит при нажатии кнопки.Я не уверен, что мне здесь не хватает, поэтому я надеюсь, что кто-то может дать представление, ниже приведен код, который у меня есть: (Я просто перечислю импортируемые детали
using Microsoft.Office.Core;
using Microsoft.Office.Server; //for use when creatigna writing data to a MS
//Word Document
using Microsoft.Office.Interop.Word; //for use when creatigna writing data to a MS
//Word Documenr
using Word = Microsoft.Office.Interop.Word; //for use when creatign and writing data
//to a MS Word Document
using System.Reflection;
namespace Kemp.SP2010.Badges.Badges
{
public partial class BadgesUserControl : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
GenerateBadges.Click += new EventHandler(GenerateBadges_Click);
}
//button to create the badges
void GenerateBadges_Click(object sender, System.EventArgs e)
{
#region Create Table in MS Word Document
object oMissing = System.Reflection.Missing.Value;
object oEndOfDoc = "\\endofdoc";
//Start word and create a new document
Word._Application oWord;
Word._Document oDoc;
oWord = new Word.Application();
oWord.Visible = true;
oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);
//Creating a paragraph at the beginning of the document
Word.Paragraph oPara1;
oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
oPara1.Range.Text = "Heading 1";
oPara1.Range.Font.Bold = 1;
oPara1.Format.SpaceAfter = 24; //24 pt spacing after paragraph
oPara1.Range.InsertParagraphAfter();
//Creating an 2x8 table
Word.Table oTable;
Word.Range wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oTable = oDoc.Tables.Add(wrdRng, 2, 8, ref oMissing, ref oMissing);
oTable.Range.ParagraphFormat.SpaceAfter = 6;
//for loop
int r,c;
string strText;
for (r = 1; r <= 2; r++)
for (c = 1; c <= 8; c++)
{
strText = "r" + r +"c" + c;
oTable.Cell(r, c).Range.Text = strText;
}
oTable.Rows[1].Range.Font.Bold = 1;
oTable.Rows[1].Range.Font.Italic = 1;
#endregion
}
}
}
ИВот веб-часть с кнопкой
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities"
Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI"
Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages"
Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="BadgesUserControl.ascx.cs"
Inherits="Kemp.SP2010.Badges.Badges.BadgesUserControl" %>
<!--Button to generate the Badges in a MS Word Document-->
<tr>
<td valign="top" width="100%">
<asp:Button ID="GenerateBadges" runat="server" Text="Generate Badges" />
</td>
</tr>
</table>
Теоретически это должно создать документ Word с абзацем и таблицей при выборе кнопки. Но, как упоминалось ранее, ничего не происходит.
Любые предложения будут высоко оценены.
Большое спасибо