2013-01-12 75 views
0

我创建了Office Add-In项目,并为应用程序添加了功能区菜单。当我建立我的项目Word文档有我的丝带没有问题。Word插件功能区

如何使用StreamReader在使用下面的按钮点击事件单击功能区菜单中的按钮时将活动文档另存为文件?

private void btnsavefile_Click(object sender, RibbonControlEventArgs e) 
{ 
    //Getting FileStream here. 

} 
+0

什么FILESTREAM ? System.IO.StreamReader可以正常工作Office Addins –

+0

@John Koerner如何使用Ribbon菜单中的StreamReader读取活动文档? – user1624185

+0

你想要保存什么?电子邮件的正文?整个电子邮件使用相当于文件保存为.msg扩展名? – Magnum

回答

0

我在堆栈溢出中找到了以下解决方案。希望它与你有关。

Serialize current ActiveDocument from office 2007 add-in

个人而言,当我处理这种情况下我也做了相同的。我已将文件副本保存到临时位置,并将副本推送到服务器。在这种情况下,活动文档将保持原样。

Excel.Workbook xlb = Globals.ThisAddIn.Application.ActiveWorkbook; 
xlb.SaveCopyAs(filePath); 

希望这会有所帮助!

0

创建Word Addin项目 - >添加Ribbon添加新项目的可视化设计器。

添加菜单功能区设计和ribbonsample.cs下面写代码

public partial class RibbonSample 
{ 
    private void RibbonSample_Load(object sender, RibbonUIEventArgs e) 
    { 
    // Initialise log4net 
    } 
    //Adding items in menu from DB 
    public RibbonSample() 
     : base(Globals.Factory.GetRibbonFactory()) 
    { 
     InitializeComponent(); 
     try 
     { 
      System.Data.DataTable dt = new DataAcces().GetData(); 
      if (dt.Rows.Count > 0) 
      { 
       for (int i = 0; i < dt.Rows.Count; i++) 
       { 
        RibbonButton Field = this.Factory.CreateRibbonButton(); 
        Field.Label = dt.Rows[i][1].ToString(); 
        Field.Tag = i; 
        Field.ControlSize = 
         Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge; 
        Field.Click += Field_Click; 
        menu1.Items.Add(Field); 
       } 
      } 
      else 
      { 
       System.Windows.Forms.MessageBox.Show("No Fields are available in database"); 
      } 
     } 
     catch (Exception exception) 
     { 
      //thrw exception 
     } 
    } 

//Select menu item text in word 
void Field_Click(object sender, RibbonControlEventArgs e) 
{ 
    try 
    { 
     Microsoft.Office.Interop.Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range; 
     currentRange.Text = (sender as RibbonButton).Label; 
    } 
    catch (Exception exception) 
    { 
     log.Error(friendlyErrorMessage + " Field_Click Details:" + exception.Message, exception); 
    } 
    } 
} 
0

无效Application_DocumentBeforeClose(Word.Document文件,REF布尔取消) { 尝试 {

 string filePath = this.Application.ActiveDocument.FullName.ToString(); 
     string fileName = this.Application.ActiveDocument.Name; 

     //dialogFilePath = filePath; 
     dialogFileName = fileName; 


     string tempFile; 
     string tempPath; 


     if (true) 
     { 

      var confirmResult = System.Windows.Forms.MessageBox.Show("Are you sure to save this document ??", 
        "Confirm Save!!", 
        System.Windows.Forms.MessageBoxButtons.YesNo); 
      if (confirmResult == System.Windows.Forms.DialogResult.Yes) 
      { 
       //document.Save(); 
       var iPersistFile = (IPersistFile)document; 
       iPersistFile.Save(tempPath, false); 

       //Do some action here 
      } 

      Word._Document wDocument = Application.Documents[fileName] as Word._Document; 
      //wDocument.Close(Word.WdSaveOptions.wdDoNotSaveChanges); 
      ThisAddIn.doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges); 
     } 

    } 
    catch (Exception exception) 
    { 

    } 

}