---
name: "spreadsheet.py"
section: "1"
platform: "linux"
package: "lcov"
version: "2.6-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/spreadsheet.py"
---

# spreadsheet.py(1)

spreadsheet documentation

## 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:

- •

  **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

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

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

- **-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 \<\<henry.cox@mediatek.com\>\>

## SEE ALSO

**[genhtml(1)](/genhtml/1.md) \<file://../man/genhtml.1.html\>**, **[geninfo(1)](/geninfo/1.md) \<file://../man/geninfo.1.html\>**, **[lcov(1)](/lcov/1.md) \<file://../man/lcov.1.html\>**

- •

  xlsxwriter documentation: \<https://xlsxwriter.readthedocs.io\>

## Copyright

2024-2026, LCOV Project
