# Install libxls with Homebrew, dnf, MacPorts, Nix, zypper

Read binary Excel files from C/C++. Version 1.6.3 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:libxls
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install libxls
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install libxls
```

  Evidence: MacPorts ports tree: textproc/libxls/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- dnf (92%):

```sh
sudo dnf install libxls
```

  Evidence: Fedora Rawhide package metadata: libxls from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#libxls
```

  Evidence: nixpkgs package indexes: pkgs/by-name/li/libxls/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install libxls-devel
```

  Evidence: openSUSE Tumbleweed package metadata: libxls-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:libxls
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/libxls>
- **Version:** 1.6.3
- **Source summary:** Read binary Excel files from C/C++
- **Homepage:** <https://github.com/libxls/libxls>
- **Repository:** <https://github.com/libxls/libxls>
- **Upstream docs:** <https://github.com/libxls/libxls>
- **License:** BSD-2-Clause
- **Source archive:** <https://github.com/libxls/libxls/releases/download/v1.6.3/libxls-1.6.3.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- libxls2csv (cli)
- libxls2csv (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.6.3
- Local data: ok
- Upstream repository: https://github.com/libxls/libxls
- info: No package-manager update timestamp was available.
- info: No cached GitHub release or tag data was available.
## Project history and usage

libxls is a C/C++ library and small command-line toolkit for reading the legacy binary Excel XLS format. Its package-manager identity is tied to a practical problem: extracting data from old spreadsheets without automating Microsoft Excel.

### Project history

The public source history records copyright lines for Komarov Valery in 2004, Christophe Leitienne in 2006, David Hoerl from 2008 through 2017, and Evan Miller from 2013 through 2018. The GitHub project describes the library as a parser for Excel files in the old binary OLE format and as the home of a CSV conversion tool.

By the 1.5.x series the project had been moved under new maintenance. The project README calls out the GitHub hosting move, an in-memory parsing API, error-returning internals, fuzz testing, and fixes for security vulnerabilities in the 1.4-and-earlier line.

### Adoption history

libxls spread through Unix package managers because the XLS format remained common in public data, research archives, and office exports long after XLSX became the default Office format. The R tidyverse readxl package documents libxls as its embedded reader for .xls files, which made the library visible to data analysts who never installed it directly.

### How it is used

Typical use is either linking the C library to inspect worksheets and cells, or running the bundled converter on an XLS file before feeding the result to text-based data tools. The library is most relevant when the input is the old binary XLS/OLE format rather than OOXML XLSX.

### Why package nerds care

For package maintainers, libxls is a small example of a compatibility library whose value comes from preserving access to awkward legacy binary formats. Its 1.5-era fuzzing and error-handling work also turned an old parser into something more acceptable for distro builds that may process untrusted documents.

### Timeline

- 2004: Source copyright records Komarov Valery's early libxls work.
- 2008: The v0.2.0 tag is associated with a GitHub commit dated 2008-03-30.
- 2018: The maintained GitHub line includes Evan Miller copyright years through 2018.
- 2019: The 1.5.x series marks the project's new-maintenance era with fuzzing and security fixes.

### Related projects

- readxl embeds libxls for .xls support and RapidXML for .xlsx support. The library also sits near tools that understand Microsoft Compound Document/OLE files and older Excel BIFF records.

### Sources

- <https://api.github.com/repos/libxls/libxls/commits/6c45c4adcb80d0575d71306652e201ad01b125c7>
- <https://github.com/libxls/libxls>
- <https://github.com/libxls/libxls/blob/dev/include/xls.h>
- <https://readxl.tidyverse.org/reference/readxl-package.html>


## Security Notes

library-like package without higher-risk signals.

- **Geiger risk:** green / low
- library-like package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** libxls
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - libxls: normalized package name match | nixpkgs package indexes: pkgs/by-name/li/libxls/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- dnf - libxls - 1.6.3-7.fc44: normalized package name match | Fedora Rawhide package metadata: libxls from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Read binary Excel files from C/C++ | https://github.com/libxls/libxls
- dnf - libxls-devel - 1.6.3-7.fc44: normalized package name match | Fedora Rawhide package metadata: libxls-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development files for libxls | https://github.com/libxls/libxls
- zypper - libxls-devel - 1.6.3-1.4: normalized package name match | openSUSE Tumbleweed package metadata: libxls-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Header files for libxls | https://github.com/libxls/libxls
- zypper - libxls-tools - 1.6.3-1.4: normalized package name match | openSUSE Tumbleweed package metadata: libxls-tools from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Utility for parsing Excel (XLS) files | https://github.com/libxls/libxls
- zypper - libxlsreader8 - 1.6.3-1.4: normalized package name match | openSUSE Tumbleweed package metadata: libxlsreader8 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Library for Parsing Excel (XLS) Files | https://github.com/libxls/libxls
- MacPorts - libxls: normalized package name match | MacPorts ports tree: textproc/libxls/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [sc-im](https://www.automicvault.com/pkg/brew/sc-im/) - Popular package that depends on this formula.
- [liborigin](https://www.automicvault.com/pkg/brew/liborigin/) - Shares av.db curated category or tags: c-library, cli, data, file-formats.
- [cgns](https://www.automicvault.com/pkg/brew/cgns/) - Shares av.db curated category or tags: cli, data, file-formats.
- [libesedb](https://www.automicvault.com/pkg/brew/libesedb/) - Shares av.db curated category or tags: cli, data, file-formats.
- [libmatio](https://www.automicvault.com/pkg/brew/libmatio/) - Shares av.db curated category or tags: cli, data, file-formats.
- [mcap](https://www.automicvault.com/pkg/brew/mcap/) - Shares av.db curated category or tags: cli, data, file-formats.
- [parqeye](https://www.automicvault.com/pkg/brew/parqeye/) - Shares av.db curated category or tags: cli, data, file-formats.
- [parquet-cli](https://www.automicvault.com/pkg/brew/parquet-cli/) - Shares av.db curated category or tags: cli, data, file-formats.
- [dsq](https://www.automicvault.com/pkg/brew/dsq/) - Shares av.db curated category or tags: cli, data, excel.
- [octosql](https://www.automicvault.com/pkg/brew/octosql/) - Local package facts share a topical domain. Shared terms: cli, data, file, file-formats, formats.

## Combined YAML source

View the package source record on GitHub. [combined/libxls.yml](https://github.com/automic-vault/db/blob/main/combined/libxls.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
