2
我想從我的應用程序中將文本導出到MS OneNote並支持Office版本:2007,2010,2013和2016.我使用Microsoft.Office.Interop.OneNote.dll Version:12.0.
0,因爲它隨所有Office版本提供。使用C#導出到OneNote
問題是,當我嘗試使用 「CreateNewPage」 我得到的例外創建的Office 2013一個新的OneNote頁:
hrSectionReadOnly 0x8004200b
的部分是隻讀。
我可以看到一個屬性readOnly="true"
我試圖改變它,它沒有幫助。仍然得到相同的例外。
如果我參考Microsoft.Office.Interop.OneNote.dll Version:15.0.0
然後一切工作正常。
任何想法爲什麼它是隻讀的,我該如何克服這個問題?
下面是代碼示例:
string strPath;
string sectionId;
string xml;
// points directly on OneNote's Unfiled section
_app.GetSpecialLocation(SpecialLocation.slUnfiledNotesSection, out strPath);
_app.OpenHierarchy(strPath, "", out sectionId, CreateFileType.cftSection);
_app.CreateNewPage(sectionId, out _sectionId, NewPageStyle.npsDefault);
var strImportXml = @"<?xml version='1.0' ?>
<one:Page xmlns:one='" + _oneNoteNamespace + "' ID='" + _sectionId + @"'>
<one:Title>
<one:OE>
<one:T>
<![CDATA[
]]>
</one:T>
</one:OE>
</one:Title>
<one:Outline>
<one:Meta name='Rumba' content='" + new Random().Next() + @"' />
<one:OEChildren>
<one:HTMLBlock>
<one:Data>
<![CDATA[My sample page]]>
</one:Data>
</one:HTMLBlock>
</one:OEChildren>
</one:Outline>
</one:Page>";
_app.UpdatePageContent(strImportXml, DateTime.MinValue);
_app.NavigateTo(_sectionId, String.Empty, true);
我不不想寫新文件。我想使用Microsoft.Office.Interop.OneNote.dll版本:12.0.0並在現有OneNote文檔中追加/創建頁面。我已經用代碼示例更新了這個問題(請參閱上文) – xbuster
以追加可以使用File.AppendAllLines(savingFileName,請參閱上面編輯的代碼行)的數據; –
我將把編輯的代碼作爲第二個答案 –