none
C# 使用 OneNote 2010 功能 RRS feed

  • 問題

  • 加入參考 Microsoft.Office.Interop.OneNote

    http://msdn.microsoft.com/en-us/library/gg649853.aspx

    小弟想用C#去控制OneNote 2010裡面的功能

    新增一個未命名頁面

     

    var OneNoteApp = new Microsoft.Office.Interop.OneNote.Application();
    
    //新增一個未命名頁面
    OneNoteApp.CreateNewPage(bstrSectionID, pbstrPageID);
    

    bstrSectionID這個參數該怎麼輸入?

     


    • 已編輯 YRIT 2011年8月24日 上午 09:50
    2011年8月24日 上午 06:52

解答

所有回覆

  • http://msdn.microsoft.com/en-us/library/gg649853.aspx

     

    大概是這樣吧

    string pageID;

    OneNoteApp.CreateNewPage(bstrSectionID, out pbstrPageID);

    2011年8月24日 上午 07:07
  • string NotebookXml;
    
    OneNoteApp.GetHierarchy(null, Microsoft.Office.Interop.OneNote.HierarchyScope.hsPages, out NotebookXml);
    
    var XDoc = XDocument.Parse(NotebookXml);
    var Ns = XDoc.Root.Name.Namespace;
    var PageNode = XDoc.Descendants(Ns + "Page").FirstOrDefault();
    var PageId = PageNode.Attribute("ID").Value;
    var Page = new XDocument();
    
    Page.Root.SetAttributeValue("ID", PageId);
    


    可以建XDocument去取得PageId

    SectionID可以在OneNote 2010 複製連結可以見到

    但bstrSectionID就不知該如何輸入

     

    bstrSectionID — A string that contains the OneNote ID of the section in which you want to create the new page.

    這是他的說明

     

    OneNoteApp.DeleteHierarchy(PageId);

    刪除卻只需要PageId

     

    2011年8月24日 上午 09:01
  • OpenHierarchy Method

    http://msdn.microsoft.com/en-us/library/ms788684(office.12).aspx

    http://code.google.com/p/dnt-onenote-importer/source/browse/trunk/InkImporter/Program.cs?r=5

                string sectionID; 
                oneNote.OpenHierarchy(notebookPath, null, out sectionID, OneNote.CreateFileType.cftSection); 
     
                string pageID; 
                oneNote.CreateNewPage(sectionID, out pageID, OneNote.NewPageStyle.npsBlankPageNoTitle); 

    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 YRIT 2011年8月25日 上午 08:05
    2011年8月24日 上午 10:47
    版主
  • 謝謝大家的回覆

    成功寫出了

    附上程式碼當筆記

    OneNote.ApplicationClass OneNoteApp = new OneNote.ApplicationClass();
    
    string notebookPath = Environment.ExpandEnvironmentVariables("C:\\Documents and Settings\\使用者名稱\\My Documents\\OneNote 筆記本\\個人\\一般.one");
    
    
    string sectionID;
    string pageID;
    
    OneNoteApp.OpenHierarchy(notebookPath, null, out sectionID, OneNote.CreateFileType.cftSection);
    
    OneNoteApp.CreateNewPage(sectionID, out pageID, OneNote.NewPageStyle.npsBlankPageNoTitle);
    


    2011年8月25日 上午 08:05