Pipe Delimited CSV to Excel: A Complete Conversion Guide

Learn to convert pipe-delimited CSV files to Excel: custom delimiter import, pipe-to-comma conversion, Power Query, and Python scripts. Free 2026 guide.

You open the data file and instead of neat columns you get one long column of text studded with vertical bars: name|city|orders|total. You are looking at a pipe-delimited file — sometimes called PSV (pipe-separated values) — and learning to convert pipe delimited CSV to Excel correctly comes down to one skill: telling Excel that the delimiter is the | character. Pipe-delimited formats are everywhere in the wild: database dumps, telecom call records, logistics tracking exports, and ETL pipelines love the pipe because, unlike the comma, it almost never appears inside real data like addresses or product descriptions.

This guide walks you through every reliable method to convert pipe delimited csv to Excel: the instant browser conversion, the Text Import Wizard’s custom delimiter option (the classic Excel answer), Power Query with a pipe delimiter for refreshable imports, the pipe-to-comma conversion question (when it helps, when it destroys data), a Python script for automation, and Google Sheets plus Mac options. We will work a realistic logistics example end to end, troubleshoot the classic failures, and share delimiter pro tips. Whether you are a warehouse analyst in Ohio parsing shipment exports, a telecom engineer in Manchester handling call records, or a data engineer in Bengaluru wiring an ETL feed, the steps are the same.

Vertical pipe characters flowing from left to right and separating into aligned spreadsheet columns
The pipe character is the column break — Excel just needs to be told.

What Is a Pipe-Delimited File? (PSV Explained)

A pipe-delimited file is plain text where each line is a row and the vertical bar | separates columns. It often uses a .psv, .txt, or .csv extension regardless of its actual delimiter — never trust the extension, always look at the content:

tracking_id|origin|destination|weight_kg|status
TRK-88121|Chicago, IL|Austin, TX|12.5|in_transit
TRK-88122|Seattle, WA|Miami, FL|3.2|delivered

Notice Chicago, IL — the comma inside the field is harmless because the delimiter is the pipe. That is the format’s entire reason for existing: commas in data stop being dangerous. Database exports (Oracle, SQL Server, Postgres COPY), Hadoop/Spark outputs, and telecom CDRs default to pipes for exactly this reason.

The pipe’s one quirk: in regular expressions it means “OR”, so some tools need it escaped as \|. Excel’s wizard and Power Query take it literally — no escaping needed there — but keep the regex meaning in mind for Python and advanced editors.

Where pipe-delimited files come from: the format has deep roots in Unix culture, where the pipe character already meant “send output here” in shell pipelines. Database administrators adopted it for COPY and bulk-export commands because it survived data containing commas, quotes, and even tabs. Today you will meet PSV in ETL staging areas, data-warehouse loads, ad-tech log files, and anywhere a pipeline engineer chose the delimiter least likely to collide with content. When a colleague says “the feed is pipe-delimited,” they are telling you the data was designed to be machine-parsed first and human-read second — which is exactly why converting it properly into Excel matters.

Close-up of glowing blue vertical pipe characters separating data fields into spreadsheet columns
One pipe per column break — the simplest delimiter to read.

Method 1: Convert Pipe Delimited CSV to Excel with a Free Online Tool

For a one-off file, a browser converter is the fastest route — no wizard settings to get wrong:

  1. Open the converter at csvtoexcel.site/ — it detects the pipe delimiter automatically and processes everything locally on your device.
  2. Upload your file (.psv, .txt, or .csv — the content matters, not the extension).
  3. Check the preview. Columns should split on every pipe. If a column contains stray pipes inside quoted text, verify the text qualifier handling.
  4. Download the .xlsx and verify.
Extension trap: a pipe-delimited file named .csv will confuse Excel on double-click (it splits on commas and finds none). Always import deliberately — never double-click a file whose delimiter you haven’t confirmed.

Method 2: Custom Delimiter in the Text Import Wizard

This is the canonical Excel answer, and it works in every version:

  1. Open Excel (don’t double-click the file). File → Open → Browse, set the filter to All Files, and select your file.
  2. Step 1: set File origin to 65001: Unicode (UTF-8); tick “My data has headers” if appropriate.
  3. Step 2: choose Delimited → Next. Uncheck all preset delimiters, check Other, and type | in the box. The preview snaps into columns instantly — if it doesn’t, your file may use a different delimiter or be fixed-width.
  4. Step 3: set column formats — Text for tracking IDs, phone numbers, and codes with leading zeros; Date with the right order for dates; General otherwise.
  5. Click Finish, place at A1, and Save As .xlsx.

The Other field accepts exactly one character — perfect for the pipe. This same technique handles any exotic delimiter: tildes, carets, multi-character separators (for those, Power Query or Python is easier).

What the “Other” field accepts — and what it doesn’t

The wizard’s Other box takes a single literal character, and it treats that character as sacred: every occurrence splits a column, with no exceptions for quoted regions beyond the standard text qualifier. That means two edge cases to know. First, multi-character delimiters like || or |~| cannot be entered — the wizard reads only the first character, so || behaves as two separate single-pipe splits and creates empty columns between them. For those, use Power Query’s custom delimiter (which accepts only one character too, but lets you merge or split further in the editor) or Python, where sep="\|\|" with the right engine handles it. Second, if your “pipe” file actually uses a lookalike character — the broken bar ¦ or a fullwidth vertical bar from an Asian locale export — the wizard won’t match it; copy the character directly from the file and paste it into the Other box rather than typing | from your keyboard.

Method 3: Power Query with a Pipe Delimiter

For recurring pipe-delimited feeds, Power Query makes the import refreshable:

  1. Data → Get Data → From File → From Text/CSV, select your file.
  2. In the preview dialog, open the Delimiter dropdown and choose Custom, then type |. The preview re-renders into columns.
  3. Click Transform Data for cleanup (trim whitespace, fix types, filter) or Load for a direct import.
  4. When the source file updates, right-click → Refresh.

Power Query also handles the pipe file’s common companions: inconsistent quoting, trailing delimiters producing empty final columns (delete them in the editor), and mixed line endings. See our Power Query guide for the full toolkit.

Combining a whole folder of pipe files

When pipe-delimited exports arrive daily — one file per day, per region, per warehouse — import them all at once with Data → Get Data → From File → From Folder. Point Power Query at the folder, click Combine → Combine & Transform, and in the sample-file dialog set the delimiter to Custom: |. Power Query builds a single query that appends every file, adds a Source.Name column so you know which file each row came from, and refreshes to pick up new files automatically. Two gotchas: ensure every file shares the same columns in the same order (add a validation step that flags unexpected headers), and watch for one file with a different encoding breaking the combine — standardize on UTF-8 at the source if you can.

Pipe-delimited text row with highlighted pipes splitting into spreadsheet columns like a zipper
The custom-delimiter option unzips pipe files into columns.

Method 4: Converting Pipes to Commas (When and How)

You will sometimes hear the advice “just replace all pipes with commas.” Usually, don’t. If any field contains a comma — Chicago, IL — the converted file now has ambiguous columns, and you’ve traded a clean import for a corrupted one. The direct custom-delimiter import (Methods 2–3) is strictly safer.

When conversion is legitimate: a downstream tool accepts only true comma-separated CSV, and you have verified no field contains commas or quotes. In that case, convert after importing correctly: import with the pipe delimiter, then Save As → CSV UTF-8 — Excel writes proper comma-separated output with quoting where needed. In Python:

import pandas as pd
df = pd.read_csv("data.psv", sep="|", dtype=str, encoding="utf-8")
df.to_csv("data.csv", index=False)   # proper CSV with quoting

Never do a blind find-and-replace of | → , in a text editor on data you haven’t inspected. It is the fastest way to silently corrupt a dataset.

Method 5: Pipe-Delimited Files in Python

For automation and large files, pandas treats the pipe as just another separator:

import pandas as pd
import glob

# sep="|" works directly — pandas does not need the pipe escaped here
df = pd.read_csv("shipments.psv", sep="|", dtype=str, encoding="utf-8")
df.to_excel("shipments.xlsx", index=False)

# Batch an entire folder:
for f in glob.glob("*.psv"):
    pd.read_csv(f, sep="|", dtype=str, encoding="utf-8") \
      .to_excel(f.replace(".psv", ".xlsx"), index=False)

dtype=str protects tracking numbers and codes on the way in; convert columns deliberately afterward. Note the regex subtlety: if you ever split lines manually with Python’s re.split, the pipe must be escaped (re.split(r"\|", line)) because unescaped | means alternation. The pattern matches our CSV-to-Excel Python guide.

PSV pipe-separated-values file icon converting into an Excel workbook icon
Scripted conversion handles pipe files at any scale.

Method 6: Google Sheets and Mac Options

Google Sheets: File → Import → Upload, then set Separator type → Custom and type |. Sheets splits the columns; download as .xlsx via File → Download if needed. Mac: Excel for Mac has the identical Text Import Wizard (File → Open, then Other: |). Apple Numbers: open the file, and if columns don’t split, use the browser converter first, then open the XLSX. No Excel: LibreOffice Calc’s import dialog has the same Other-delimiter field — see opening files without Excel.

Converting on a phone or tablet

Pipe-delimited exports sometimes land in your inbox while you’re away from a desk — a warehouse alert, an urgent report. On mobile, the browser converter is the pragmatic choice: upload the file, download the XLSX, and open it in the Excel or Google Sheets app. Typing a pipe character on a phone keyboard is fiddly (it’s usually on the symbols page), so avoid manual find-and-replace on mobile entirely. If you regularly need conversions on the go, save the converter as a home-screen shortcut — it behaves like an app, works offline after first load, and keeps the whole workflow to three taps.

Worked Example: Logistics Export with Pipes

A regional carrier in Ohio emails this daily export. Note the commas inside city fields and the empty notes field on row 2:

tracking_id|origin|destination|weight_kg|status|notes
TRK-88121|Chicago, IL|Austin, TX|12.5|in_transit|fragile
TRK-88122|Seattle, WA|Miami, FL|3.2|delivered|
TRK-88123|Denver, CO|Boston, MA|7.8|in_transit|signature required
  1. File → Open in Excel; wizard step 1: UTF-8, headers ticked.
  2. Step 2: Delimited → Other: |. Preview shows six clean columns — the commas inside cities are untouched.
  3. Step 3: set tracking_id to Text (protects the format), weight_kg to General.
  4. Finish at A1. Select the data, Ctrl+T to make a table, add a filter on status to see in-transit vs delivered.
  5. Save As .xlsx with the date in the filename.

The empty notes cell on row 2 imports as a proper blank — not a shifted column — because the trailing pipe is still there. If your export omits trailing delimiters on short rows, columns shift left; Power Query’s error handling or a quick Python check catches those rows.

When the export has no header row

Many machine-generated pipe files skip headers entirely — just data from line one. In the wizard’s step 1, leave “My data has headers” unchecked; Excel names the columns F1, F2, F3, and you rename them afterward (double-click the header cell in the resulting table). In Power Query, the preview dialog has a “Use First Row as Headers” toggle — leave it off, then rename columns in the editor. In Python, pass header=None and assign df.columns yourself. And whenever you receive a headerless feed regularly, keep a one-line data dictionary — “F1=tracking_id, F2=origin…” — in the workbook; future-you will not remember the column order.

Troubleshooting Pipe-Delimited Imports

Everything in one column

The pipe wasn’t set as the delimiter — you likely double-clicked the file or left the wizard on Comma. Re-import and type | in the Other field.

Columns split, but some rows have extra columns

A literal pipe inside a field value (rare, but it happens in free-text notes). If fields are quoted, ensure the text qualifier is set to "; otherwise, fix the source or handle those rows manually.

Quoted pipes: the escape hatch that confuses importers

Well-formed pipe-delimited files quote fields that contain a literal pipe: TRK-1|"note: use dock | bay 2"|delivered. Excel’s wizard and Power Query both respect the standard double-quote text qualifier, so these import correctly — provided the qualifier is set (it is by default). Trouble starts with non-standard quoting: single quotes, backslash-escaped pipes (\|), or no quoting at all. For backslash escapes, neither Excel nor Power Query understands them natively — preprocess in Python (pd.read_csv(..., sep="|", escapechar="\\")) or ask the source for standard quoting. When you control the export, always use double-quote qualifiers; it is the one convention every importer agrees on.

Trailing empty columns

Lines ending with | create a phantom final column. Delete it in the wizard’s step 3 (“Do not import column”) or in Power Query.

Numbers stored as text / green triangles

Excel imported with dtype-like caution — actually this is Excel being careful. Select the column, click the warning icon, and Convert to Number once you’ve verified the values.

Encoding gibberish

Re-import as UTF-8; legacy telecom exports sometimes use Latin-1 — try that in step 1 if UTF-8 fails. Details in our encoding guide.

Semicolon vs pipe confusion (European files)

Some European systems use semicolons, not pipes — if the Other:| preview doesn’t split, try Semicolon. Our semicolon guide and locale delimiter guide cover the regional variants.

Pipe-separated data rows with blue column bands aligning into a spreadsheet grid
Consistent pipes mean consistent columns — verify with a row count.

Pro Tips for Delimiter Work

  • Look at the file before importing. Ten seconds in a text editor tells you the delimiter, the qualifier, and whether headers exist.
  • Never double-click unknown files. Import deliberately via File → Open.
  • Use Other, not find-and-replace. Importing with the real delimiter beats converting delimiters in an editor.
  • Count rows before and after. Source lines minus headers should equal Excel rows.
  • Protect text-like IDs as Text in step 3 — tracking numbers, phones, codes.
  • Document the recipe (“pipe-delimited, UTF-8, col A Text”) in the workbook for next time.
  • Save recurring feeds as Power Query — one-click refresh beats weekly wizard runs.
  • Keep the original file. Re-importing beats re-requesting.
  • Beware the pipe in regex contexts. Whenever a tool asks for a “pattern” or “expression” rather than a literal delimiter, escape the pipe as \| — unescaped, it means “or” and your split will behave bizarrely.
  • Standardize before you share. If colleagues need the data too, convert pipe delimited csv to excel once, clean it, and share the workbook — don’t forward the raw PSV and let five people import it five different ways.
Large pipe symbol slicing through text rows with segments falling into spreadsheet columns
The right delimiter, set once, beats every workaround.

Dealing with a file that mixes pipes, commas, and tabs in the same export? join the discussion in our community forum — delimiter archaeology is a favorite pastime there.

Frequently Asked Questions

How do I convert a pipe-delimited CSV to Excel?

Open Excel, go to File → Open, select the file, and in the Text Import Wizard choose Delimited, then check Other and type the pipe character |. Alternatively, use Power Query (Data → Get Data → From Text/CSV) with a Custom delimiter of |.

What is a pipe-delimited file?

A pipe-delimited file (PSV — pipe-separated values) separates columns with the vertical bar character |. It’s popular for data containing commas — addresses, city names — because the pipe rarely appears inside normal text.

Why won’t Excel split my pipe-delimited file into columns?

Excel only auto-detects commas, tabs, and semicolons. For pipes you must explicitly set a custom delimiter: type | in the Text Import Wizard’s Other field, or use Power Query’s custom delimiter option.

Should I convert pipes to commas before importing?

Usually not. If any field contains a comma, converting pipes to commas corrupts the data. Import with the pipe as a custom delimiter directly — it’s safer. Only convert to commas afterward via Save As CSV if a downstream tool requires it.

How do I handle pipe-delimited files in Python?

Use pd.read_csv("file.psv", sep="|") — pandas accepts the pipe directly. Note that in regular expressions the pipe means “OR”, so escape it as \| if you’re splitting strings with re.split.

Can Google Sheets open pipe-delimited files?

Yes. Go to File → Import → Upload, select the file, set Separator type → Custom, and type |. Sheets splits the columns on the pipe character.

CE
csvtoexcel.site team

We build free, private, browser-based file tools. Every guide is written and tested by our editors.