Owerview
xlsxgrep is a CLI tool to search text in XLSX, XLS, XLSM, CSV, TSV and ODS files. It works similarly to Unix/GNU Linux grep.
Features
-
Grep compatible: xlsxgrep tries to be compatible with Unix/Linux grep, where it makes sense. Some of grep options are supported (such as
-r,-ior-c). -
Search many XLSX, XLS, XLSM, CSV, TSV and ODS files at once, even recursively in directories.
-
Parallel execution: multi-process search via
-j/--jobs, using all available CPU cores by default. -
Format-aware spreadsheet output: XLSX/XLSM and XLS numeric cells are rendered using their spreadsheet number format. ODS cells use their stored display text. CSV and TSV values are printed exactly as stored in the source file.
-
Regular expressions: Python regex and POSIX extended regular expressions (-E).
-
Search modes: row mode (
-R/--row, default) prints matching rows; column mode (-C/--column) prints matching columns vertically. Count mode (-c) reports matching rows, columns, cells, and strings. -
Usable as a module: import
xlsxgrepinto Python code to run searches programmatically and get structured results. -
Works on all major platforms: Windows, macOS, BSD and Linux.
Usage:
usage: xlsxgrep [-h] [-V] [-P] [-E] [-F] [-i] [-w] [-c] [-r] [-H] [-N]
[-l] [-L] [-S SEPARATOR] [-Z] [-j JOBS] [-p] [-R | -C]
[-d] PATTTERN FILE [FILE ...]
positional arguments:
PATTERN use PATTERN as the pattern to search for.
FILE file or path to folder
options:
-h, --help show this help message and exit.
-V, --version display version information and exit.
-P, --python-regex PATTERN is a Python regular expression.
-E, --extended-regexp PATTERN is a POSIX extended regular expression (Default).
-F, --fixed-strings interpret PATTERN as fixed strings, not regular expressions.
-i, --ignore-case ignore case distinctions.
-w, --word-regexp force PATTERN to match only whole words.
-c, --count print only a count of matches per file.
-r, --recursive search directories recursively.
-H, --with-filename print the file name for each match.
-N, --with-sheetname print the sheet name for each match.
-l, --files-with-match print only names of FILEs with match pattern.
-L, --files-without-match print only names of FILEs with no match pattern.
-S, --separator SEPARATOR define custom list separator for output, the default is TAB.
-j, --jobs JOBS number of CPU cores to use for search (default: all cores).
-p, --progress display a progress bar during the search.
-R, --row search rows and print matching rows (default).
-C, --column search columns and print whole matching columns vertically.
Examples:
xlsxgrep -i "foo" foobar.xlsx
xlsxgrep -c -H "(?i)foo|bar" /folder
For more details and options, see xlsxgrep(1) or run 'man xlsxgrep'.
Installation
pip install xlsxgrep
Or download a standalone installer or portable binary for Windows, macOS, or
Linux (.deb/.rpm/.pkg.tar.zst) from the releases page.
Metadata
Release files for xlsxgrep 0.0.41
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xlsxgrep-0.0.41.tar.gz | 15.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xlsxgrep-0.0.41-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.5 kB
Release files / xlsxgrep-0.0.41.tar.gz
| Download URL | xlsxgrep-0.0.41.tar.gz |
|---|---|
| Size | 15.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6704cd6b9428a4152aea34c3427c7768e16da4f35cb45f05ede2369c432268bc
|
|
BLAKE2b-256 checksum How to use checksums |
00a916c52c17ba71cccc993ebf6b39790c9907bd072f1db316672a43a9339d15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / xlsxgrep-0.0.41-py3-none-any.whl
| Download URL | xlsxgrep-0.0.41-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f292209fa3ce7c8ae9522e6f9da82aa52106f926b641816fbd3ecf54a57c552c
|
|
BLAKE2b-256 checksum How to use checksums |
05fb288f5bb7d80f6810a947bee261e62f31a12d1f95e4bcc253489d7b4e728c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency log