在 Powershell 中读取 Excel 工作表

2023-12-07

下面的脚本读取 Excel 文档的工作表名称......

我该如何改进它,以便它可以提取每个工作表中 B 列的所有内容(从第 5 行开始 - 因此第 1-4 行被忽略)并创建一个对象?

例如。如果工作表 1 中的 B 列(称为伦敦)具有以下值:

Marleybone
Paddington
Victoria
Hammersmith

工作表 2 中的 C 列(称为诺丁汉)具有以下值:

Alverton 
Annesley
Arnold
Askham

我想创建一个如下所示的对象:

City,Area
London,Marleybone
London,Paddington
London,Victoria
London,Hammersmith
Nottingham,Alverton 
Nottingham,Annesley
Nottingham,Arnold
Nottingham,Askham

到目前为止,这是我的代码:

clear all

sheetname = @()

    $excel=new-object -com excel.application
    $wb=$excel.workbooks.open("c:\users\administrator\my_test.xls")
    for ($i=1; $i -le $wb.sheets.count; $i++)
    {
      $sheetname+=$wb.Sheets.Item($i).Name;
    }

$sheetname

这假设内容位于每张工作表的 B 列中(因为不清楚如何确定每张工作表上的列。)并且该列的最后一行也是工作表的最后一行。

$xlCellTypeLastCell = 11 
$startRow = 5 
$col = 2 

$excel = New-Object -Com Excel.Application
$wb = $excel.Workbooks.Open("C:\Users\Administrator\my_test.xls")

for ($i = 1; $i -le $wb.Sheets.Count; $i++)
{
    $sh = $wb.Sheets.Item($i)
    $endRow = $sh.UsedRange.SpecialCells($xlCellTypeLastCell).Row
    $city = $sh.Cells.Item($startRow, $col).Value2
    $rangeAddress = $sh.Cells.Item($startRow + 1, $col).Address() + ":" + $sh.Cells.Item($endRow, $col).Address()
    $sh.Range($rangeAddress).Value2 | foreach 
    {
        New-Object PSObject -Property @{ City = $city; Area = $_ }
    }
}

$excel.Workbooks.Close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Powershell 中读取 Excel 工作表 的相关文章

  • 如何通过VBA代码修复仅在Excel共享模式下发生的运行时错误400

    我真的不知道400错误是什么原因造成的 下面的代码在正常模式下运行得很好 但是一旦我在共享模式下启用 Excel 并尝试使用用户表单 它就会给我 VBA 400 我在这里尝试做的是在向用户显示用户表单后更改形状的文本并禁用其 OnActio
  • 在 Excel 中的文件夹内的所有文件上添加一列

    我在一个文件夹内有 250 个不同的 excel 文件 具有相同的布局 其中包含列A to F 我需要在列上添加新列G 传统的方法是打开每个文件并在以下位置添加新列G 有没有使用 Excel 宏或任何其他工具的简单过程来完成此任务 这个链接
  • 如何在Powershell控制台中分配多行字符串

    当我在 powershell 控制台中输入此内容时 test Test Test 并且输入多次 它会一直打印 gt gt 所以我永远无法完成命令 该怎么办 应该是行中的第一件事 或者它被认为只是字符串的一部分 test Test Test
  • 如何使用 C# 在 MS Excel 单元格中添加数字验证

    我的目标是限制用户在 MS Excel 单元格中仅输入 1 到 100 范围内的值 我正在以编程方式生成 Excel 文件 但是当我添加上述验证时 抛出异常Exception from HRESULT 0x800A03EC 我写的代码如下
  • 使用 OpenXML 读取列中的 Excel 工作表数据

    有没有一种方法可以使用 OpenXML SDK 和 C 按列而不是按行读取 Excel 工作表 我已经尝试使用 EPPlus 包 但遇到了一些问题 因为我的应用程序还使用 EPPlus 不支持的 xslm 文件 因此 我需要 OpenXML
  • 替换第二个和第三个下划线之间的任何内容

    我有一个 PowerShell 脚本行 它用 替换 删除 第二个和第三个下划线之间的字符 get childitem pdf rename item newname name replace p L p L 例子 12345 00001 L
  • 关闭工作簿时删除范围,xls vba

    我想要范围 Range A2 G z 关闭工作簿时删除 有人可以帮我处理代码吗 谢谢 凯 这就是我尝试过的 Option Explicit Sub Makro1 insert clipboard Workbooks Pfl SchutzSt
  • 如何暂停特定时间? (Excel/VBA)

    我有一个 Excel 工作表 其中包含以下宏 我想每秒循环一次 但如果我能找到执行此操作的函数 那就很危险了 难道不可能吗 Sub Macro1 Macro1 Macro Do Calculate Here I want to wait f
  • 如何在 PowerShell 中将长命令拆分为多行

    如何在 PowerShell 中获取如下所示的命令并将其拆分为多行 C Program Files IIS Microsoft Web Deploy msdeploy exe verb sync source contentPath c w
  • VBA全局类变量

    我的障碍是试图让多个子程序识别类变量 当我尝试全局声明它们时 出现编译错误 无效的外部过程 然后 当我运行公共函数或子函数来声明变量时 它们在其他子函数中保持未定义状态 我希望多个子程序能够识别变量 因为它们的值应该通过用户窗体进行更改 然
  • 打开 Excel 工作簿时自动运行 VBA 代码

    我有 VBA 代码 我想在打开 Excel 工作簿时运行 我尝试在代码应该运行的工作表中创建一个公共过程 Public Sub Workbook Open Some code here End Sub 工作簿打开时它不会运行 它应该在其中一
  • 从 Powershell 更新计划任务脚本

    我正在尝试编写一个每天运行一次的 Powershell 脚本 它将执行的众多功能之一是确保脚本本身是最新的 我的问题是 由于我对脚本进行了版本控制 因此我需要更新从脚本中创建的计划任务 我在这里考虑了两种不同的方法 其中我也无法弄清楚 我最
  • 如何获取 pandas 数据框并覆盖 Excel 工作簿中的特定工作表

    我想获取一个数据框并让它替换特定工作表中的现有数据 假设为sheet1 然后我想获取另一个数据框并将其附加到另一张工作表上的数据 比如说同一工作簿中的sheet2 目前 我必须将数据写入新的 Excel 工作簿 我无法在线找到如何实际替换我
  • 如何获取 64 位的 pshome 路径?

    32 位的主文件夹路径可以使用 PSHome多变的 c Windows System32 WindowsPowerShell v1 0 如何访问包含 64 位版本路径的变量 c Windows SysWOW64 WindowsPowerSh
  • SQL Server:删除除系统数据库之外的所有数据库

    在 PowerShell 中 我使用以下代码删除所有非系统 SQL Server 数据库 invoke sqlcmd ServerInstance sqlInstanceName U sqlUser P sqlPass Query EXEC
  • 如何在Excel中创建关系矩阵

    给定一个三元组列表 我想得到一个关系矩阵 如下所示 1 A X 1 A Y 1 B X A B C 1 B Z 1 X Y X Z 2 A Z gt 2 Z X Y 2 B X 3 Y Z 3 A Y 3 A Z 2 C Y 如何 可以在
  • Excel宏隐藏特定单元格和合并区域

    我试图根据另一个单元格的值隐藏特定单元格 到目前为止 我设法隐藏整行 但无法隐藏特定单元格 Local Currency value show hide item If Range Currency Value USD Then Range
  • Excel Add In - console.log 在哪里输出它的消息 - NodeJS

    我正在尝试使用 JavaScript API 创建 Excel 插件 但我不明白 console log 在哪里输出它们的消息 所有 Microsoft 文档都包含 console log 示例 但没有解释 console log 输出消息
  • 用于导出到 CSV/Excel 的数据 URI(无服务器端请求):浏览器支持/限制?

    以下问题 Javascript 或 Flash 导出至 CSV Excel https stackoverflow com questions 8150516 javascript or flash export to csv excel
  • 如何忽略警告错误?

    我有以下 PowerShell 脚本 它获取给定 IP 地址内计算机的 NetBIOS 名称 我正在使用管道将结果转储到文本文件中 问题是 如果 IP 地址不可用 则会打印警告 这是 PowerShell 脚本 function Get C

随机推荐

  • OpenCV 图像匹配 - 从照片与表单模板

    我正在尝试检测照片是否代表填充了数据的预定义公式模板 我是图像处理和 OpenCV 的新手 但我的第一次尝试是使用 FlannBasedMatcher 并比较检测到的关键点的数量 有一个更好的方法吗 填写表格 jpg 表单模板 jpg im
  • 下载并读取 R 中的 shapefile 函数

    我想扩展这个功能 截至目前 该函数从网络下载并解压形状文件 我想实现 rgdal 将文件读入 R library rgdal dlshape function location temp tempfile download file loc
  • 在半透明 JFrame 上不使用 setOpaque() 删除 JTextPane 的白色背景

    我有一个 Java 代码 我在其中实现了一个半透明的 JPanel 并在其上使用 Graphics 2D 绘制了图像 该图像是 PNG 图像 其中包含一个 80 不透明的白色矩形 遍布整个 JFrame 现在我需要添加一个 JTextPan
  • const TypedefedIntPointer 不等于 const int *

    我有以下 C 代码 typedef int IntPtr const int cip new int const IntPtr ctip4 cip 我使用 Visual Studio 2008 编译它并收到以下错误 错误 C2440 初始化
  • 如何在更新查询中动态设置表和字段名称?

    我想循环遍历表格列表 对于每个表 我想运行更新查询 伪代码 ArrayOfTablesObjects tablename1 fieldname1 tablename2 fieldname2 foreach tablename in Arra
  • 长轮询 停止其他请求 1 或 2 分钟

    在创建聊天系统期间 我使用长寿命请求来获取消息 并使用 jquery 请求发送消息 如下所示 Send btn click function ajax type POST url Chat aspx Insert data Str txtS
  • Selenium 浏览器自动化中的执行流程

    我不确定硒中的脚本 自动测试 执行 我想这个过程如下 执行开始 Selenese 命令被转换为 HTTP 请求 浏览器驱动程序的HTTP服务器接收HTTP请求 浏览器驱动程序确定实现该功能所需的步骤命令 浏览器驱动程序在浏览器上执行它们 执
  • Grails 3 与并发会话

    我正在尝试从 2 1 1 升级我的项目 至 3 1 1 我在并发会话方面遇到一些问题 例如 我在浏览器 chrome 上使用用户名 AAA 登录 然后其他用户在其他浏览器上使用用户名 AAA 再次登录 然后用户名 AAA 将在浏览器 chr
  • 将字符串拆分为长数据帧格式的值[重复]

    这个问题在这里已经有答案了 我有一个类似于以下示例的数据框df它由一个字符变量组成VAR df lt data frame ID 1 2 VAR c VAL1 r nVAL2 r nVAL8 VAL2 r nVAL5 stringsAsFa
  • cap 部署 + rbenv:捆绑:找不到命令

    我正在关注https gorails com deploy ubuntu 16 04 我正在运行 bundle exec cap 生产部署 并收到以下错误 10 email protected 0 289s 00 21 bundler in
  • SQL Data Sync Agent 2.0 安装错误系统服务

    I am trying to install SQL Data Sync Agent 2 0 but I got this install error 我正在使用 Hyper V 运行虚拟机 我在 Windows Server 2016 和
  • 尝试获取 ENTER 键的字符代码

    我有这个代码 newSymbolTextBox addKeyPressHandler new KeyPressHandler public void onKeyPress KeyPressEvent event System out pri
  • 在 Flash Professional 中使用 Flex SDK 时出现问题(针对 as3corelib)

    我最近在寻找将舞台渲染到文件的方法时发现了 Mike Chambers 的 as3corelib 在我的 Flash Professional 中的 ActionScript 3 0 项目中效果很好 CS6 如果有的话 我决定查看 Mike
  • 四面体的重心坐标

    我想寻求有关四面体重心坐标的帮助 按照我在这里找到的方法 http www cdsimpson net 2014 10 barycentric coordinates html我实现了一个 C 函数来查找四面体中点的重心坐标 float S
  • 在 Mavericks OS X 10.9.2 中使用 Git 时出现 SSLRead() 错误

    因为我通过 Mavericks OS X 10 9 2 的 MBP 中的 Xcode tools 安装了 Git 我无法将现有存储库克隆到我的计算机中 我很确定问题出在我当前的计算机上 因为该存储库在其他 PC 上运行良好 错误是 amor
  • 如何添加外部包并在 Rust 编译器中运行?

    我正在使用 Rust 编译和构建一个示例程序 我选择了rustc代替cargo用于编译 因为它是一个简单的个人测试项目 到目前为止使用rustc用于编译和构建可执行文件工作正常 但是当我尝试添加外部rand包给了我这个错误 1 extern
  • Rails 不适用于新项目。显示错误“类 Cipher 的超类不匹配 (TypeError)”

    我的 Rails 和 ruby 目前已更新 rails v gt 导轨 5 0 1 ruby v gt ruby 2 4 0p0 2016 12 24 修订版 57164 x86 64 linux 创建了一个新的 Rails 应用程序 Ra
  • 从 Woocommerce 中的优惠券使用中排除具有 2 个特定属性术语的变体

    如果客户的购物车中有任何具有以下属性条款的特定产品变体 我需要防止使用优惠券 attribute pa style gt swirly attribute pa style gt circle 我查看了适用于限制特定产品和特定类别的 Woo
  • 特定时间码的 ffmpeg vfilter

    我想向某些视频添加水印 但我只希望水印出现在视频中的某些时间码 例如开始 中间 结束 并且仅出现几秒钟 我已经让 ffmpeg 按照此处的说明进行水印 但我不知道如何在不同的时间码打开 关闭水印 这是我用来添加水印的命令 ffmpeg i
  • 在 Powershell 中读取 Excel 工作表

    下面的脚本读取 Excel 文档的工作表名称 我该如何改进它 以便它可以提取每个工作表中 B 列的所有内容 从第 5 行开始 因此第 1 4 行被忽略 并创建一个对象 例如 如果工作表 1 中的 B 列 称为伦敦 具有以下值 Marleyb