VSTO 得到Office文档的选中内容(Word、Excel、PPT、Outlook)
目的:得到在Word、Excel、PPT、Outlook中選中的一段內(nèi)容。
Word:
??????? private string GetSelectCont()
??????? {
??????????? string w = "";
??????????? Word.Selection sec = appWord.Selection;
??????????? Word.Words wds = sec.Words;???????????
??????????? w = wds.Application.Selection.Text;
??????????? return w.Trim();
??????? }
Outlook:
?????? private string GetSelectCont(Outlook.Inspector Inspector)
?????? {
??????????? string w = "";
??????????? Word.Document document = Inspector.WordEditor;???????????
??????????? w = document.Application.Selection.Words.Application.Selection.Text;???????????
??????????? return w.Trim();
?????? }
????? 注:無法得到標(biāo)題等之類的選中內(nèi)容。
PPT:
??????? private string GetSelectCont()
??????? {
??????????? string w = "";
??????????? PowerPoint.Selection sec = appPPT.ActiveWindow.Selection;
??????????? string word = sec.TextRange.Text;
??????????? return word.Trim();
??????? }
Excel:
??????? ?private string GetSelectCont()
??????? {
??????????? string w = "";
??????????? object[,] result;
??????????? object res1;
??????????? string res2;
??????????? Excel.Workbook wbook = Globals.ThisAddIn.Application.ActiveWorkbook;? //當(dāng)前活動(dòng)workbook
??????????? Excel.Worksheet wsheet = (Excel.Worksheet)wbook.ActiveSheet;????????? //當(dāng)前活動(dòng)sheet?
??????????? Excel.Range range = (Excel.Range)wsheet.Application.Selection;????? //當(dāng)前選中的cells
??????????? int count = range.Count;
??????????? res1 = (object)range.Value2;
??????????? //如果選中多個(gè)單元格
???????????? if (count > 1)
???????????? {
???????????????? int row_count = range.Rows.Count;
???????????????? int col_count = range.Columns.Count;
???????????????? result = (object[,])res1;
???????????????? for (int i = 1; i <= row_count; i++)
???????????????? {
???????????????????? for (int j = 1; j <= col_count; j++)
???????????????????? {
???????????????????????? if (result[i, j] != null)
???????????????????????? {
???????????????????????????? w += (string)result[i, j] + " ";
???????????????????????? }
???????????????????? }
???????????????? }
???????????? }
???????????? else {
???????????????? //如果選中單個(gè)
???????????????? if (res1 == null)
???????????????? {
???????????????????? w = "";
???????????????? }
???????????????? else {???????????????????
???????????????????? res2 = res1.ToString();
???????????????????? w = res2;
???????????????? }
???????????? }
??????????? return w.Trim();
??????? }
?????? 注:Excel比較復(fù)雜,這只能得到選中單個(gè)或多個(gè)單元格的內(nèi)容,卻不能得到某個(gè)單元格中mark起來的內(nèi)容,正在查找解決辦法。。。
?
posted on 2015-06-16 10:40 NET未來之路 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/4580136.html
總結(jié)
以上是生活随笔為你收集整理的VSTO 得到Office文档的选中内容(Word、Excel、PPT、Outlook)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AppScan介绍和安装
- 下一篇: 遥 控 器