搜索的思路對應上述集合和對象
跟Word對象模型不一樣的是
第一步
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= j= ;
Excel Range oRange;
object oText=strKeyWord Trim() ToUpper();
for(i= ;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>= && oRange Cells Columns Count>= )
{
MessageBox Show( 文檔中包含指定的關鍵字! 搜索結果 MessageBoxButtons OK);
break;
}
}
這裡要說兩個值得注意的地方第一種方法實現了
bool blFlag=false;
int iRowCnt= iColCnt= iBgnRow iBgnCol;
for(m= ;m<=iEWSCnt;m++)
{
ews=(Excel Worksheet)ew Worksheets[m];
iRowCnt= +ews UsedRange Cells Rows Count;
iColCnt= +ews UsedRange Cells Columns Count;
iBgnRow=(ews UsedRange Cells Row> )?
ews UsedRange Cells Row :ews UsedRange Cells Row;
iBgnCol=(ews UsedRange Cells Column> )?
ews UsedRange Cells Column :ews UsedRange Cells Column;
for(i=iBgnRow;i<iRowCnt+iBgnRow;i++)
{
for(j=iBgnCol;j<iColCnt+iBgnCol;j++)
{
strText=((Excel Range)ews UsedRange Cells[i j]) Text ToString();
if (strText ToUpper() IndexOf(strKeyWord ToUpper())>= )
{
MessageBox Show( 文檔中包含指定的關鍵字! 搜索結果 MessageBoxButtons OK);
}
}
}
}
顯然這種方法比第一種繁瑣得多From:http://tw.wingwit.com/Article/program/net/201311/11986.html