首页 > 解决方案 > 如何从文本文件中提取字符串并使用 Powershell 将它们复制到 Excel 工作表

问题描述

我有很多包含如下数据的文本文件:

refresh: '<%= GlobalizationUtil.GetText(GlobalizationKey.Refresh) %>',
close: '<%= GlobalizationUtil.GetText(GlobalizationKey.Close) %>',
all: '<%= GlobalizationUtil.GetText(GlobalizationKey.All) %>',
entries: '<%= GlobalizationUtil.GetText("DepMethodEdit_Entries") %>',
archive: '<%= GlobalizationUtil.GetText("worklist_Archive") %>',
onequarter: '<%= GlobalizationUtil.GetText("worklist_onequarter") %>',
halfyear: '<%= GlobalizationUtil.GetText("worklist_halfyear") %>',
oneyear: '<%= GlobalizationUtil.GetText("worklist_oneyear") %>',
twoyears: '<%= GlobalizationUtil.GetText("worklist_twoyears") %>',
customize: '<%= GlobalizationUtil.GetText("CBW_EditDashlet") %>',
notSentLabel: '<%= GlobalizationUtil.GetText("status-notsend") %>',
sentLabel: '<%= GlobalizationUtil.GetText("status-sent") %>',
errorSendingLabel: '<%= GlobalizationUtil.GetText("status-error") %>',
openLabel: '<%= GlobalizationUtil.GetText(GlobalizationKey.Open) %>',
rejectedLabel: '<%= GlobalizationUtil.GetText("DocumentStatus_Rejected") %>',
normalLabel: '<%= GlobalizationUtil.GetText("Normal") %>',
creditLabel: '<%= GlobalizationUtil.GetText(GlobalizationKey.Credit) %>',
deleteinvoice: '<%= GlobalizationUtil.GetText("ProcessedInvoicingDelete") %>'

是否可以提取此字符串 <%= GlobalizationUtil.GetText("ProcessedInvoicingDelete") %> 并使用 Powershell 将其复制到 Excel 工作表中?

标签: excelpowershell

解决方案


是的。高水平:

  • 获取文本文件的内容
  • 对每个元素(行)使用Select-String[regex]::Matches
  • 导出为 CSV(如果您不想要标题,请使用,Set-Content否则使用Export-CSV
  • 创建 Excel ComObject
  • 打开工作簿和工作表
  • 使用SaveAs方法
  • 退出 Excel ComObject

推荐阅读