Repository navigation
Releases: DavisMcCracken/xlgrep
Releases · DavisMcCracken/xlgrep
Release list
v0.5.0
Full Changelog: v0.4.0...v0.5.0
v0.4.0
New
--headerlabels values with their column's header from row 1, or from row N with--header=N. In text output a hit readsEmail: jsmith@contoso.com, and with--rowevery value is labeled.--jsonadds"header"for the hit, plus"row_headers"(keyed like"row_values") with--row, so an agent knows what a value is without reading the sheet. Hits in or above the header row aren't labeled. It can't be combined with-c,-lor--formulas.
Fixes
- A file reached through more than one path argument is searched and printed once. This covers
..in a path, different case on Windows (a.xlsx A.XLSX), and a folder passed alongside a junction or symlink to it.
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Changed behavior (check scripts that depend on it)
--formulasshows formulas as Excel does:=XLOOKUP(A1,B:B,C:C), not the_xlfn.XLOOKUPstored in the file. The same goes for_xlfn._xlws.(FILTER,SORT, …) and LAMBDA parameters (_xlpm.). Text in quotes and quoted sheet names are left as stored. Patterns or scripts that matched_xlfn.need updating.
New
- On PyPI.
uv tool install xlgreporpipx install xlgrep, oruvx xlgrep …to run it without installing. The wheels hold the same binary (no Python code) for Linux (x86_64, arm64), Windows (x64, arm64) and macOS (Intel and Apple silicon), so macOS no longer needscargo install. - Excel templates (
.xltx,.xltm) are searched.
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Changed behavior (check scripts that depend on these)
- A
--sheetname that no searched workbook has now exits 2 withxlgrep: no sheet named "…" in the searched files. It used to exit 1, as if the value just wasn't there. --jsonvalues changed for times of day (14:30:00, was1899-12-31 14:30:00) and for.odsdurations and times (36:05:07, wasPT36H05M07S).
Fixes
- No more hangs on bad files. A workbook that crashes the reader (calamine panics on some malformed files) is skipped with a reason and exit 2. Before, xlgrep hung when enough files came after it (4 per CPU core), or else exited 101 and dropped later matches.
- No more out-of-memory aborts.
.xlsxand.xlsbsheets are streamed instead of loaded whole. A 5 KB file with one cell atXFD1048576used to request 512 GiB and abort the process. - Colors in classic Windows consoles. cmd, Windows PowerShell, and pwsh outside Windows Terminal showed
←[1;31minstead of color. An emptyNO_COLOR=no longer disables color, per no-color.org. | headstops the search early, and piped output arrives as each file is searched instead of in 8 KiB chunks.- Sheet names that read as cells are quoted (
'Q3'!B7,'FY2024'!A1,'R1C1'!C3), so refs paste into Excel's Name Box. - A path argument that can't be read shows the OS error unless it's simply missing.
- The "N hits in M files" summary is colored only when stderr is a terminal, so
2>logdoesn't collect escape codes.
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Full Changelog: https://github.com/DavisMcCracken/xlgrep/commits/v0.1.0