PowerShell
Edit|Remove
#Requires -Version 5.0 
#Requires -Modules PoshRSJob,ImportExcel 
 
param ( 
    [string]$path = '.', 
    [string]$output = '.', 
    [switch]$show = $false 
) 
 
$logs = dir $path\*.evtx 
 
$events = @() 
 
$events +$logs | sort length -Descending | Start-RSJob -Name {$_.BaseName} -ScriptBlock { 
        Get-WinEvent -Path $_.FullName | select @{Name='UTC';Expression={Get-Date($_.TimeCreated.ToUniversalTime()) -f o}},MachineName,ProviderName,LogName,Id,LevelDisplayName,Message         
    } | Wait-RSJob -ShowProgress | Receive-RSJob 
 
$events | sort 'UTC' -desc | Export-Excel $output\events.xlsx -Show:$show 
 
Get-RSJob | Remove-RSJob
This script leverages the PoshRSJob and ImportExcel modules to do a multithreaded export of events from multiple EVTX files to a single XLSX Excel spreadsheet.

You must have those modules installed. To install them:

Install-Module PoshRSJob
Install-Module ImportExcel

The script requires PowerShell 5.0 (so Windows 10, Windows Server 2016, or Windows 7/Windows Server 2008 R2 or later with WMF 5.0 installed).

The script does not require Excel as the ImportExcel module does not require Excel. However to view the resulting XLSX file you need an application that supports viewing XLSX files, such as Excel.