【问题标题】:how to get excel column index by searching with cell text?如何通过使用单元格文本搜索来获取 excel 列索引?
【发布时间】:2013-08-28 03:12:06
【问题描述】:

我有一个包含标题行和许多列的 Excel 文件。在第 1 行第 10 列中,我的单元格值为“请求”。我需要通过搜索值“请求”来获取此单元格索引。有没有办法不遍历列(不使用 for 循环)。

【问题讨论】:

  • 是否有多个单元格带有“请求”?如果有多个带有“Request”的单元格,是否需要所有带有“Request”的单元格的索引?
  • 您需要更清楚自己想要什么以及如何获得它。您使用的是 VBA 还是 excel 函数?如果您发布示例,那将有很大帮助。
  • 我正在使用 Soapui+Groovy 在 Apache POI 的帮助下自动化我的测试用例,以便从 excel 中获取数据。执行后,我需要在“请求”和“响应”列的同一个 Excel 中编写我的请求和响应。所以我需要在excel文件中获取名称为'Request'的列索引(它总是行'0',因为它是标题行)。因此,如果我得到索引号,我可以使用它在所需的第 n 行的相应列索引中写入我的请求。我知道我们可以访问 thro' for 循环。但我试图在不使用 for 循环的情况下找到另一种方法。请告诉我。

标签: excel


【解决方案1】:

示例:您正在查看C2:J2H2 范围内的"Request"

 =MATCH("Request"; C2:J2; 0)

将返回6(H 列是从 C 列算起的第 6 列)。

【讨论】:

  • 我正在使用 Soapui+Groovy 在 Apache POI 的帮助下自动化我的测试用例,以便从 excel 中获取数据。执行后,我需要在“请求”和“响应”列的同一个 Excel 中编写我的请求和响应。所以我需要在excel文件中获取名称为'Request'的列索引(它总是行'0',因为它是标题行)。因此,如果我得到索引号,我可以使用它在所需的第 n 行的相应列索引中写入我的请求。我知道我们可以访问 thro' for 循环。但我试图在不使用 for 循环的情况下找到另一种方法。请告诉我
  • 我不知道 Apache POI,但 Excel 作为内置函数 MATCH 在单元格公式和脚本中工作。但是,我发现自己更喜欢使用编程方法而不是 Excel.WorksheetFunction 方法。
【解决方案2】:

原始问题没有说明使用 Apache POI 搜索标题行的值。在这种情况下,您需要在第 0 行使用 POI 方法 getCell()getCellValue() 并遍历它们,直到找到您要查找的值,然后使用 POI 插入行 - How to insert a row between two rows in an existing excel with HSSF (Apache POI)。有关使用getCell()getCellValue() 的示例,请参阅this SO post

列出的匹配公式不适用于您的情况,因为在呈现电子表格之前不会计算公式。但它是在 Excel 中使用的绝佳公式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    相关资源
    最近更新 更多