SPREADSHEET.PY(1) LCOV SPREADSHEET.PY(1) NAME spreadsheet.py - spreadsheet documentation Manual section 1 Manual group LCOV Utilities NAME spreadsheet.py Convert LCOV profile data to Excel spreadsheet for performance analysis and comparison SYNOPSIS spreadsheet.py [-o output.xlsx] [options] data.json [data2.json ...] DESCRIPTION spreadsheet.py is a utility script that converts JSON profile data from genhtml, geninfo, and lcov into an Excel spreadsheet for easier analysis. The script processes performance timing data and presents it in a tabular format with statistical analysis and conditional formatting. The spreadsheet includes: o Summary sheets for comparing multiple runs o Per-file timing data for detailed analysis o Statistical summaries (total, average, standard deviation) o Conditional formatting to highlight outliers COLOR CODING The spreadsheet uses conditional formatting to highlight timing anomalies: o Yellow: Values between 1.5 and 2.0 standard deviations larger than average (and more than 15% above average) o Red: Values more than 2.0 standard deviations larger than average (and more than 15% above average) o Green: Values more than 2.0 standard deviations smaller than average (significantly better performance) SUPPORTED TOOLS The script processes profile data from: o geninfo: Chunk timing, file processing, filter operations o genhtml: Source parsing, HTML generation, annotation, categorization o lcov: Tracefile merging, parsing, segment processing OPTIONS -o file, --out file Save Excel output to specified file. Default: stats.xlsx. --threshold percent Minimum percentage difference from average to trigger colorization. Differences smaller than this threshold are not highlighted. Default: 15.0%. --low multiplier Standard deviation multiplier for yellow highlighting. Values between --low and --high standard deviations above average are colored yellow. Default: 1.5. --high multiplier Standard deviation multiplier for red highlighting. Values more than --high standard deviations above average are colored red. Default: 2.0. -v, --verbose Increase verbosity of the report. Includes additional timing data such as read and translate operations. --show-filter Include filter operation timing data in the spreadsheet. Filter data shows time spent in filter chunk processing, queue operations, and merging. files One or more JSON profile data files to process. Files should be generated using the --profile option of geninfo, genhtml, or lcov. EXAMPLES Basic usage with a single profile file: $ spreadsheet.py -o report.xlsx geninfo_profile.json Compare multiple profile runs: $ spreadsheet.py -o comparison.xlsx run1.json run2.json run3.json Include filter timing data with verbose output: $ spreadsheet.py --show-filter -v -o detailed.xlsx profile.json Adjust sensitivity for outlier detection: $ spreadsheet.py --threshold 10 --low 1.0 --high 1.5 -o sensitive.xlsx data.json GENERATING PROFILE DATA To generate profile data for analysis, use the --profile option: $ geninfo --profile geninfo_profile.json -o coverage.info ./build $ genhtml --profile genhtml_profile.json -o html coverage.info $ lcov --profile lcov_profile.json -a a.info -a b.info -o merged.info AUTHOR Henry Cox <> SEE ALSO genhtml(1) , geninfo(1) , lcov(1) o xlsxwriter documentation: Copyright 2024-2026, LCOV Project 2.5 2026-07-07 SPREADSHEET.PY(1)