当前位置: 首页 > 知识库问答 >
问题:

在单个Excel列中搜索关键字只返回第一个单元格详细信息

古弘
2023-03-14
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $False
$workbook = $excel.Workbooks.Open("C:\temp\extest3.xlsx")
$sheet = $workbook.ActiveSheet

$getStatus = $sheet.UsedRange.find("False")
$cellrow = $getStatus.Row
$cellcol = $getstatus.Column
$celladdress = $cellrow,$cellcol
$celladdress 
$workbook.Save()
$workbook.Close()

我得到的输出只有一个单元行和col号。不获取包含false的其他单元格。

共有1个答案

寇景明
2023-03-14

虽然可以像AdminOfThings好答案所显示的那样使用带有PowerShell的Excel Com对象,但
它(特别是对于简单的平面数据结构)相当笨拙,并且需要在本地安装Excel。

我建议使用Doug Finkes著名的ImportExcel模块。

仅为了演示,创建一个示例.xlsx文件:

# generate test file with random data
1..10|ForEach-Object{
    [PSCustomObject]@{
        HostName = 'Test{0:D2}' -f $_
        Online   = [bool](0..1|Get-Random)
    }
} | Export-Excel .\extest3.xlsx
HostName Online
-------- ------
Test01    False
Test02    False
Test03     True
Test04     True
Test05     True
Test06    False
Test07    False
Test08     True
Test09     True
Test10     True
Import-Excel .\extest3.xlsx | 
  Where-Object {-not $_.Online} | 
    Select-Object -ExpandProperty HostName
Test01
Test02
Test06
Test07
 类似资料:
  • 问题:我想在单元格内容的旁边或下面找到一个单元格的值,一个工作簿的文本值。 示例:在Sheet2中,我有两个随机单元格(假设它的索引未知,并且total不是定义的名称) 我想搜索值“200”站在总数旁边,并把它放在表2(一个活动单元格)。如果有多个单元格包含单词“total”,请列出所有单元格,如果可能,请将包含我正在寻找的单元格的工作表的名称放入。价值200张2 写入结果activeCell.v

  • 假设我有一个应用程序,有许多不同的实体,它们之间没有关系。 我想创建一个搜索,查询所有这些,但返回一个统一的类型,即: 你认为有办法让它起作用吗?

  • 在我的数据框架中,有一列名为“teams”。它包括城市和球队名称。我想把这个城市拉进另一个纵队。这是数据帧:数据帧示例 我可以使用正则表达式轻松提取列: 然而,在“名称”栏中,对于纽约尼克斯队,它只给了我“New”的值,我想得到“New York”: 结果 那么,我该怎么做呢?如果单元格有2个单词,我该如何从开头只提取一个单词?如果单元格有3个单词,我该如何使用正则表达式从中提取2个单词?

  • =(LEN(B2)-LEN(代号(B2,SHEET1!A:A,“”)))/LEN(SHEET1!A:A) 结果会是这样的:

  • 这是我的表类 如果((布尔)model.getValueat(r,3)==true){col.setpk(true);} 它给出错误,因为返回类型是布尔型。

  • 我的google sheet excel文档包含如下数据 列B和D包含导入函数提供的数据,这些数据存储在不同的文件中。 我想用行中的第一个非空值填充列A,换句话说:所需的结果必须如下所示: 我尝试了ISBLANK函数,但很明显,如果导入了列,那么即使值为空,也不是空的,因此此函数不适用于我的情况。然后,我在两个不同的变体中尝试了查询功能: 1) 但当行包含带数字的单元格时,这种情况下的结果是错误的