Windows stores events in the binary EVTX format, but the practical way to get them out for analysis is XML — from Event Viewer’s “Save All Events As XML” on a filtered custom view, or wevtutil epl Security security.xml from an elevated prompt. That XML is verbose and deeply nested — every field of interest is buried a few levels down inside a <System> header and an <EventData> payload — so analysts, SOC playbooks and SOAR pipelines almost always reach for a flat table instead. Windows Event Log to CSV Converter turns an event XML export into a clean, analysis-ready CSV in one paste, entirely in your browser.
Every <Event> element is parsed independently: the <System> header yields the EventID, the numeric Level plus its human-readable name (Critical, Error, Warning, Information, Verbose — decoded per the standard Windows eventing level values, not just guessed from context), Provider, TimeCreated, Computer, Channel, the Security user SID, Task, Opcode, Keywords and the EventRecordID. The <EventData> payload — which varies field-by-field depending on the EventID, since a logon event and a service-change event carry completely different data — is expanded so each named <Data Name="..."> element (SubjectUserName, TargetUserName, IpAddress, LogonType, and dozens of others depending on the event source) becomes its own column, collected in first-seen order across the whole export so the column set reflects exactly what appeared in your paste. Older or third-party providers that emit unnamed <Data> elements (no Name attribute) still get captured, numbered data_1, data_2 and so on in document order, so nothing from the payload is silently dropped.
Output is RFC 4180 CSV with your choice of comma, semicolon, tab or pipe delimiter — semicolon matters if your Excel locale treats comma as a decimal separator, tab (TSV) avoids quoting entirely for most values, and pipe is a common SIEM ingestion convention. Values containing the delimiter, a double quote, or an embedded newline (multi-line EventData values do happen, e.g. command lines or stack-like payloads) are quoted and escaped correctly so the file re-opens cleanly in Excel, a script, or a database loader. If you don’t want one column per field, turning off “Expand EventData as columns” packs the whole payload into a single JSON-encoded event_data column instead — useful when the field set varies too much across event types to make a stable column layout practical. Everything runs locally: paste, convert, copy or download — nothing is uploaded.