【问题标题】:Need to export the XML file data to excel file需要将XML文件数据导出为ex​​cel文件
【发布时间】:2025-12-05 20:25:01
【问题描述】:

我有 XML 文件。我想使用 vbscript 或 powershell 将 XML 文件中的一些数据导出到 excel 文件。这里是示例 XML 文件。我只需要导出下面给定的 xml 数据中包含的参数数据

【问题讨论】:

  • 那么,当您尝试这样做时发生了什么?您面临什么问题?
  • 我尝试使用 power shell 和 vbscript 处理不同的脚本文件。我收到错误或没有输出
  • SO 不是编码服务,因此您需要添加您的最佳尝试以及您遇到的错误。否则很难猜出你的代码有什么问题。
  • $XMLfile = 'e:\events.xml' [XML]$Events = Get-Content $XMLfile foreach($Events1 in $Events.Events.UserData){ Write-Host "Employee Id : " $Events1.Param1 #Write-Host "Employee mail Id :" $Events1.mailId #Write-Host "Employee Name :" $Events1.empName Write-Host '' } 我尝试过的脚本,但执行脚本时没有任何反应
  • Edit 问题并将 Powershell 代码放在那里。很难从 cmets 读取代码,而且这些代码无论如何都是短暂的。没有语法高亮,也没有换行符。 SO 不是一个讨论区,所以不要尝试使用 cmets。

标签: powershell


【解决方案1】:

我发现这个forum post 显示了一个非常相似问题的答案。

此解决方案假定您可以使用 PowerShell 检索数据。

# specify filter for events to retrieve
$filter = @{
    LogName = 'Microsoft-Windows-PrintService/Operational'
    ID=307
}

# retrieve events and convert to xml
[xml[]]$xml = Get-WinEvent -filterHashTable $filter | %{$_.ToXml()}

# extract events from xml
$events = $xml | Select-Xml '//x:Event' -Namespace @{ x = 'http://schemas.microsoft.com/win/2004/08/events/event' } | Select-Object -ExpandProperty Node

# convert "Param*" nodes to CSV
$events | %{$_.UserData.DocumentPrinted} | select Param* | Export-Csv C:\path\to\307-events.csv -NoTypeInformation

这会将所有“Param*”节点放入指定文件中,然后可以在 Excel 中打开该文件。

【讨论】:

  • 感谢上面的脚本完美地工作,我例外。感谢所有成员(个人感谢 Guenther Schmitz)
  • @Arunkumar 那你为什么从来不accept an answer ??