SPREADSHEET.PY(1) LCOV SPREADSHEET.PY(1)

# [NAME](#NAME)

spreadsheet.py - spreadsheet documentation

[**Manual section**](#Manual)

1

[**Manual group**](#Manual~2)

LCOV Utilities

# [NAME](#NAME~2)

[**spreadsheet.py**](#spreadsheet.py)

Convert LCOV profile data to Excel spreadsheet for performance analysis and comparison

# [SYNOPSIS](#SYNOPSIS)

```
spreadsheet.py [-o output.xlsx] [options] data.json [data2.json ...]
```

# [DESCRIPTION](#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:

- **Summary sheets** for comparing multiple runs
- **Per-file timing data** for detailed analysis
- **Statistical summaries** (total, average, standard deviation)
- **Conditional formatting** to highlight outliers

# [COLOR CODING](#COLOR_CODING)

The spreadsheet uses conditional formatting to highlight timing anomalies:

- **Yellow**: Values between 1.5 and 2.0 standard deviations larger than average (and more than 15% above average)
- **Red**: Values more than 2.0 standard deviations larger than average (and more than 15% above average)
- **Green**: Values more than 2.0 standard deviations smaller than average (significantly better performance)

# [SUPPORTED TOOLS](#SUPPORTED_TOOLS)

The script processes profile data from:

- **geninfo**: Chunk timing, file processing, filter operations
- **genhtml**: Source parsing, HTML generation, annotation, categorization
- **lcov**: Tracefile merging, parsing, segment processing

# [OPTIONS](#OPTIONS)

[**-o *file*, --out *file***](#o)

Save Excel output to specified file. Default: **stats.xlsx**.

[**--threshold *percent***](#threshold)

Minimum percentage difference from average to trigger colorization. Differences smaller than this threshold are not highlighted. Default: 15.0%.

[**--low *multiplier***](#low)

Standard deviation multiplier for yellow highlighting. Values between **--low** and **--high** standard deviations above average are colored yellow. Default: 1.5.

[**--high *multiplier***](#high)

Standard deviation multiplier for red highlighting. Values more than **--high** standard deviations above average are colored red. Default: 2.0.

[**-v, --verbose**](#v)

Increase verbosity of the report. Includes additional timing data such as read and translate operations.

[**--show-filter**](#show)

Include filter operation timing data in the spreadsheet. Filter data shows time spent in filter chunk processing, queue operations, and merging.

[***files***](#files)

One or more JSON profile data files to process. Files should be generated using the **--profile** option of **geninfo**, **genhtml**, or **lcov**.

# [EXAMPLES](#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](#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](#AUTHOR)

Henry Cox &lt;&lt;henry.cox@mediatek.com&gt;&gt;

# [SEE ALSO](#SEE_ALSO)

**[genhtml(1)](/man/os/lcov/genhtml.1) &lt;file://../man/genhtml.1.html&gt;**, **[geninfo(1)](/man/os/lcov/geninfo.1) &lt;file://../man/geninfo.1.html&gt;**, **[lcov(1)](/man/os/lcov/lcov.1) &lt;file://../man/lcov.1.html&gt;**

•

xlsxwriter documentation: &lt;https://xlsxwriter.readthedocs.io&gt;

# [Copyright](#Copyright)

2024-2026, LCOV Project

2026-10-05 2.6

---

Document: spreadsheet.py(1) from lcov 2.6-r0 (Chainguard OS)
Source: https://github.com/linux-test-project/lcov
