亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#編程實現Excel文檔中搜索文本內容的方法及思路

2020-01-24 03:11:59
字體:
來源:轉載
供稿:網友
打開Excel的VBA幫助,查看Excel的對象模型,很容易找到完成這個功能需要的幾個集合和對象:Application、Workbooks、Workbook、Worksheets還有Worksheet和Range。Application創建Excel應用,Workbooks打開Excel文檔,Workbook獲得Excel文檔工作薄,Worksheets操作工作表集合,Worksheet獲得單個工作表。
搜索的思路對應上述集合和對象,可以這樣表述:要搜索的文本可能存在Excel文檔當中的某個工作表上,搜索應該遍歷目標Excel文件的每個工作表中的有效區域,如果找到,則退出本次搜索,如果沒有找到,則繼續搜索直到完成本次搜索。   
跟Word對象模型不一樣的是,Excel對象模型沒有提供Find對象,不過沒有關系,可以通過兩種方法來實現,一個是通過Range對象的Find()方法來實現,另外一個比較麻煩,取得工作表Worksheet的有效區域UsedRange之后,遍歷該Range對象中的所有行列。實際開發中,用第二種方法時發現了一個特別的現象,所以第二種方法也準備詳細記述一下。   
第一步,打開Excel文檔:
復制代碼 代碼如下:

  object filename="";
  object MissingValue=Type.Missing;
  string strKeyWord=""; //指定要搜索的文本,如果有多個,則聲明string[]
  Excel.Application ep=new Excel.ApplicationClass();
  Excel.Workbook ew=ep.Workbooks.Open(filename.ToString(),MissingValue,
   MissingValue,MissingValue,MissingValue,
   MissingValue,MissingValue,MissingValue,
   MissingValue,MissingValue,MissingValue,
   MissingValue,MissingValue,MissingValue,
   MissingValue);

然后準備遍歷Excel工作表:
復制代碼 代碼如下:

  Excel.Worksheet ews;
  int iEWSCnt=ew.Worksheets.Count;
  int i=0,j=0;
  Excel.Range oRange;
  object oText=strKeyWord.Trim().ToUpper();
  
  for(i=1;i<=iEWSCnt;i++)
  {
   ews=null;
   ews=(Excel.Worksheet)ew.Worksheets[i];
   oRange=null;
   (Excel.Range)oRange=((Excel.Range)ews.UsedRange).Find(
   oText,MissingValue,MissingValue,
   MissingValue,MissingValue,Excel.XlSearchDirection.xlNext,
   MissingValue,MissingValue,MissingValue);
   if (oRange!=null && oRange.Cells.Rows.Count>=1 && oRange.Cells.Columns.Count>=1)
   {
   MessageBox.Show("文檔中包含指定的關鍵字!","搜索結果",MessageBoxButtons.OK);
   break;
   }
  }

這里要說兩個值得注意的地方。一個是遍歷工作表的索引,不是從0開始,而是從1開始;另外一個是Find方法的第六個參數SearchDirection,指定搜索的方向,幫助文檔中說這個參數是可選項,但是我用MissingValue如論如何編譯不能通過,不知什么原因,于是顯式指定它的默認值xlNext。
第一種方法實現了,再看看第二種方法。這種方法除了要遍歷工作表,還要對工作表使用區域的行和列進行遍歷。其它一樣,只對遍歷說明,代碼如下:
復制代碼 代碼如下:

  bool blFlag=false;
  int iRowCnt=0,iColCnt=0,iBgnRow,iBgnCol; 
  for(m=1;m<=iEWSCnt;m++)
  {
   ews=(Excel.Worksheet)ew.Worksheets[m];
   iRowCnt=0+ews.UsedRange.Cells.Rows.Count;
   iColCnt=0+ews.UsedRange.Cells.Columns.Count;
   iBgnRow=(ews.UsedRange.Cells.Row>1)?
   ews.UsedRange.Cells.Row-1:ews.UsedRange.Cells.Row;
   iBgnCol=(ews.UsedRange.Cells.Column>1)?
   ews.UsedRange.Cells.Column-1:ews.UsedRange.Cells.Column;
  
   for(i=iBgnRow;i
   {
   for(j=iBgnCol;j
   {
   strText=((Excel.Range)ews.UsedRange.Cells[i,j]).Text.ToString();
   if (strText.ToUpper().IndexOf(strKeyWord.ToUpper())>=0)
   {
   MessageBox.Show("文檔中包含指定的關鍵字!","搜索結果",MessageBoxButtons.OK);
   }
   }
   }
  }

顯然這種方法比第一種繁瑣得多,不過這里有一個關于遍歷單元格的索引很特別的地方,當工作表中的使用區域UsedRange為單行單列的時候,對UsedRange中的單元格遍歷起始索引值為1,為多行多列的時候,起始索引值為0,不知這是Excel程序設計者出于什么樣的考慮?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女主播视频| 狠狠综合久久av一区二区小说| 国产精品福利网| 亚洲三级av在线| 亚洲国产精品美女| 亚洲欧美国产精品专区久久| 欧美国产乱视频| 91久久在线观看| 久久成人精品一区二区三区| 日韩av免费在线观看| 精品国产欧美一区二区五十路| 亚洲国产天堂网精品网站| 精品成人av一区| 欧美激情videoshd| 国产精品都在这里| 国产成人av网址| 2019国产精品自在线拍国产不卡| 欧美激情免费在线| 久久av在线看| 成人免费网站在线| 丝袜一区二区三区| 国产成人精品a视频一区www| 国产精品欧美一区二区三区奶水| 川上优av一区二区线观看| 精品福利视频导航| 亚洲精品国产品国语在线| 精品国产精品三级精品av网址| 韩国欧美亚洲国产| 欧美华人在线视频| 亚洲国产97在线精品一区| 少妇av一区二区三区| 亚洲精品v欧美精品v日韩精品| 热久久这里只有| 欧美国产欧美亚洲国产日韩mv天天看完整| 91亚洲精品在线| 91国产视频在线| 成人福利免费观看| 亚洲天堂男人天堂| 国产欧美一区二区三区久久| 成人黄色片在线| 日韩中文字幕久久| 久久久av一区| 成人免费看黄网站| 亚洲综合社区网| 亚洲一区二区三区在线视频| 欧美日韩成人免费| 成人伊人精品色xxxx视频| 久久久久久国产精品久久| 日韩精品视频三区| 日韩激情av在线免费观看| 欧美噜噜久久久xxx| 欧美精品做受xxx性少妇| 国产一区玩具在线观看| 国产在线拍揄自揄视频不卡99| 国模私拍一区二区三区| 97免费视频在线| 亚洲亚裔videos黑人hd| 性亚洲最疯狂xxxx高清| 综合136福利视频在线| 成人伊人精品色xxxx视频| 国产一区二区三区视频在线观看| 激情亚洲一区二区三区四区| 欧美中文字幕视频| 欧美精品制服第一页| 久久久成人精品视频| 国产精品久久久久久久久久久久久| 日韩久久精品电影| 性色av一区二区三区在线观看| 成年无码av片在线| 国产亚洲欧洲黄色| 91最新在线免费观看| 午夜精品久久17c| 91社区国产高清| 欧美精品精品精品精品免费| 精品中文字幕视频| 日韩最新免费不卡| 97婷婷涩涩精品一区| 欧美xxxx做受欧美.88| 7777精品久久久久久| 亚洲精品av在线播放| 欧美大奶子在线| 国产精品一区=区| 91在线|亚洲| 欧美性一区二区三区| 日韩av免费在线| 国产美女久久精品香蕉69| 97在线看福利| 久久最新资源网| 91亚洲一区精品| 欧美成人午夜视频| 日韩成人在线视频| 欧美午夜精品久久久久久久| 中文字幕av一区二区三区谷原希美| 日本中文字幕成人| 亚洲美女激情视频| 亚洲人a成www在线影院| 国产亚洲美女精品久久久| 亚洲伊人久久综合| 亚洲视频电影图片偷拍一区| 国产日韩中文在线| 亚洲欧美综合精品久久成人| 日本aⅴ大伊香蕉精品视频| 高清视频欧美一级| 亚洲视频欧美视频| 欧美激情一区二区三区成人| 欧美日韩国产页| 欧美色另类天堂2015| 欧美日韩一区二区免费在线观看| 久久综合久中文字幕青草| 欧美日韩一区二区三区在线免费观看| 亚洲最大成人在线| 午夜精品免费视频| 91麻豆桃色免费看| 在线视频欧美日韩精品| 日韩美女主播视频| 欧美一区二区三区免费视| 久久国产精品久久久久久久久久| 亚洲精品国产精品自产a区红杏吧| 伦理中文字幕亚洲| 91免费人成网站在线观看18| 欧美尤物巨大精品爽| 粉嫩老牛aⅴ一区二区三区| 一区二区中文字幕| 国产有码一区二区| 538国产精品视频一区二区| 欧美精品一本久久男人的天堂| 亚洲国产中文字幕久久网| 亚洲精品福利视频| 久久久久久91| 国产亚洲成精品久久| 成人a视频在线观看| 国产成人综合一区二区三区| 国产精品视频区1| 欧美夫妻性生活xx| 国产精品白丝av嫩草影院| 国产精品视频专区| 亚洲国产高清高潮精品美女| 国语自产精品视频在线看抢先版图片| 91视频国产一区| 日韩电影中文字幕在线| 91国产视频在线播放| 亚洲精品美女久久久| 亚洲成人免费网站| 日韩欧美在线观看| 国产精品aaa| 亚洲精品有码在线| 亚洲国产精品人久久电影| 国产精品视频成人| 欧美激情一区二区三区高清视频| 国精产品一区一区三区有限在线| 亚洲最大福利视频| 欧美精品在线网站| 久久精品国亚洲| 成人福利免费观看| 亚洲欧洲激情在线| 国产91精品久| 国产精品r级在线| 精品一区二区三区三区| 性金发美女69hd大尺寸| 色偷偷偷综合中文字幕;dd| 精品国内产的精品视频在线观看| www.日韩.com| 久久精品一本久久99精品| 精品国产一区二区三区久久狼黑人|