查找数据
<p>[TOC]</p>
<h2>1.命令说明</h2>
<p>在工作表指定的单元格范围中查找数据,返回查到的单元格</p>
<h2>2.命令原型</h2>
<pre><code>cellResult = Excel.Find(excelWorkBook, sheet=&quot;Sheet1&quot;, cells=&quot;A1&quot;, findValue=&quot;&quot;, retIndex=False, retAll=False, allMatch=False, matchCase=False)</code></pre>
<h2>3.命令参数</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">默认值</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">excelWorkBook</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">Book</td>
<td style="text-align: left;">无</td>
<td>使用 "打开Excel工作簿"命令(Excel.OpenExcel) 或 "绑定Excel工作簿" 命令(Excel.BindBook)返回的工作簿对象</td>
</tr>
<tr>
<td style="text-align: left;">sheet</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string/int</td>
<td style="text-align: left;">"Sheet1"</td>
<td>如果使用字符串,则表示指定工作表的名字;使用数字,则表示指定工作表的顺序(例如:0、1、2代表从左边开始正数第1、2、3个工作表;-1、-2、-3代表从右边开始倒数第1、2、3个工作表)。默认"Sheet1"</td>
</tr>
<tr>
<td style="text-align: left;">cells</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string/list</td>
<td style="text-align: left;">"A1:B2"</td>
<td>搜索的单元格范围,支持单元格名如 "A1"或 "A1:B1"与行列列表如[行号, 列号]或[[行号, 列号], [行号, 列号]] 四种格式,当使用单元格名时不区分大小写。当只写一个单元格时,从该单元格开始搜索至此表最后有数据的地方。默认 "A1"</td>
</tr>
<tr>
<td style="text-align: left;">findValue</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">""</td>
<td>需要查找的数据内容。默认""</td>
</tr>
<tr>
<td style="text-align: left;">retIndex</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">False</td>
<td>是否返回单元格索引,True返回 [行号,列号] 形式的单元格索引,False返回字母加数字的单元格名称。默认False</td>
</tr>
<tr>
<td style="text-align: left;">retAll</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">False</td>
<td>是否返回全部单元格,True返回列表包含所有查找到数据的单元格,False返回范围内第一个查找到数据的单元格。默认False</td>
</tr>
<tr>
<td style="text-align: left;">allMatch</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">False</td>
<td>搜索内容是否完全匹配。完全匹配True,部分匹配False。默认False</td>
</tr>
<tr>
<td style="text-align: left;">matchCase</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">bool</td>
<td style="text-align: left;">False</td>
<td>搜索内容是否区分大小写字母。区分True,忽略False。默认False</td>
</tr>
</tbody>
</table>
<h2>4.返回结果</h2>
<p>查找到的单元格(如:"A1" 或 ["A1", "B2"] 或 [1, 1] 或 [[1, 1], [2, 2]])</p>
<h2>5.运行实例</h2>
<pre><code>&quot;&quot;&quot;
/*******************查找数据*******************
入参:
excelWorkBook:[必选参数]使用 &quot;打开Excel工作簿&quot;命令(Excel.OpenExcel) 或 &quot;绑定Excel工作簿&quot; 命令(Excel.BindBook)返回的工作簿对象
sheet:[可选参数]如果使用字符串,则表示指定工作表的名字;使用数字,则表示指定工作表的顺序(例如:0、1、2代表从左边开始正数第1、2、3个工作表;-1、-2、-3代表从右边开始倒数第1、2、3个工作表)。默认&quot;Sheet1&quot;
cells:[可选参数]搜索的单元格范围,支持单元格名如&quot;A1&quot;或&quot;A1:B1&quot;与行列列表如[行号, 列号]或[[行号, 列号], [行号, 列号]]四种格式,当使用单元格名时不区分大小写。当只写一个单元格时,从该单元格开始搜索至此表最后有数据的地方。默认&quot;A1&quot;
findValue:[可选参数]需要查找的数据内容。默认&quot;&quot;
retIndex:[可选参数]是否返回单元格索引,True返回[行号,列号]形式的单元格索引,False返回字母加数字的单元格名称。默认False
retAll:[可选参数]是否返回全部单元格,True返回列表包含所有查找到数据的单元格,False返回范围内第一个查找到数据的单元格。默认False
allMatch:[可选参数]搜索内容是否完全匹配。完全匹配True,部分匹配False。默认False
matchCase:[可选参数]搜索内容是否区分大小写字母。区分True,忽略False。默认False
出参:
查找到的单元格(如:&quot;A1&quot; 或 [&quot;A1&quot;, &quot;B2&quot;] 或 [1, 1] 或 [[1, 1], [2, 2]])
注意事项:
该命令不能单独使用,需配合 &quot;打开Excel&quot;命令(Excel.OpenExcel) 或&quot;绑定Excel&quot;命令(Excel.BindBook)一起使用才能正常使用,单独使用则会报错。
****************************************************/
&quot;&quot;&quot;
# 打开D:\1.xlsx
excelWorkBook = Excel.OpenExcel(r'D:\1.xlsx', visible=True, appType=&quot;Excel&quot;, pwd=&quot;&quot;, writePwd=&quot;&quot;)
# 在Sheet1表格内搜索内容包含100的单元格,返回第一个找到的单元格
cellResult = Excel.Find(excelWorkBook, sheet=&quot;Sheet1&quot;, cells=&quot;A1&quot;, findValue=&quot;100&quot;, retIndex=False, retAll=False, allMatch=False, matchCase=False)
print(cellResult)
# 在Sheet1表格内搜索内容包含100的单元格,返回所有找到的单元格
cellResult = Excel.Find(excelWorkBook, sheet=&quot;Sheet1&quot;, cells=&quot;A1&quot;, findValue=&quot;100&quot;, retIndex=False, retAll=True, allMatch=False, matchCase=False)
print(cellResult)
# 在Sheet1表格的A1:E10范围内搜索数据包含字母&quot;a&quot;的单元格,不区分大小写,返回第一个找到的单元格,以单元格索引形式返回
cellResult = Excel.Find(excelWorkBook, sheet=&quot;Sheet1&quot;, cells=&quot;A1:E10&quot;, findValue=&quot;a&quot;, retIndex=True, retAll=False, allMatch=False, matchCase=False)
print(cellResult)
# 在Sheet1表格的A1:E10范围内搜索数据完全匹配字母&quot;A&quot;的单元格,区分大小写,返回所有找到的单元格,以单元格索引形式返回
cellResult = Excel.Find(excelWorkBook, sheet=&quot;Sheet1&quot;, cells=&quot;A1:E10&quot;, findValue=&quot;A&quot;, retIndex=True, retAll=True, allMatch=True, matchCase=True)
print(cellResult)</code></pre>