从C#中的Windows窗体应用程序访问office项目类

时间:2013-08-17 03:14:43

标签: c# winforms ms-word vsto

我正在创建一个管理项目,从用户那里获取一些输入,然后在正确格式化后打印它们

我创建了2个项目

  1. windows表单应用程序(用于在字符串n datagridview中输入)

  2. 办公室项目(用于格式化和打印我的第一个项目的数据)

  3. 我已将office项目及其.dll文件导入到我的第一个项目中 但问题是如何将参数(字符串n datagridview)传递给office项目的thisdocument类它已经有一些参数,我不知道如何从第一个项目传递它的内置和新参数

    private void printButton_Click(object sender, EventArgs e) { 
    dataGridView.Rows.Add("1", "a", "1", "1"); 
    dataGridView.Rows.Add("2", "b", "2", "2"); 
    dataGridView.Rows.Add("3", "c", "3", "3"); 
    WordDocumentProject.ThisDocument = new ThisDocument(); 
    }
    

1 个答案:

答案 0 :(得分:0)

全部记录在案,这是一个很好的例子:How to automate Microsoft Word to create a new document by using Visual C#

所以要将datagridview中的字符串传递给word来打印,你可以这样做:

//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);

//Insert a datagridview info into the document.
DataTable dt = (DataTable)datagridview1.DataSource;
foreach(DataRow dr in dt.Rows)
{
Word.Paragraph oPara1;
oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
oPara1.Range.Text = dr[0].ToString();
oPara1.Range.Font.Bold = 1;
oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
oPara1.Range.InsertParagraphAfter();