xls-rs 0.1.6

A powerful CLI tool and library for spreadsheet manipulation with pandas-style operations. Supports CSV, Excel (XLSX, XLS, ODS), Parquet, and Avro formats with formula evaluation, data transformation, and comprehensive analytics capabilities.
Documentation
//! Capability catalog shared by CLI/MCP.
//!
//! **Parity:** the `xls-rs` binary maps subcommands to this crate’s public APIs (see the repo’s
//! `src/cli/handler.rs` and `src/cli/commands/`). Reads with `--range` use `Converter::read_any_data`
//! plus `filter_by_range` (same as [`ExcelHandler::read_range`](crate::excel::ExcelHandler::read_range) for a single sheet).
//! MCP uses [`CapabilityRegistry::execute`](crate::capabilities::CapabilityRegistry::execute) with the
//! same names as in [`CAPABILITIES`].

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CapabilitySurface {
    Library,
    Cli,
    Mcp,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CapabilityKind {
    Io,
    Transform,
    Analytics,
    Advanced,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Capability {
    pub name: &'static str,
    pub kind: CapabilityKind,
}

pub const CAPABILITIES: &[Capability] = &[
    // I/O
    Capability {
        name: "read",
        kind: CapabilityKind::Io,
    },
    Capability {
        name: "write",
        kind: CapabilityKind::Io,
    },
    Capability {
        name: "convert",
        kind: CapabilityKind::Io,
    },
    Capability {
        name: "sheets",
        kind: CapabilityKind::Io,
    },
    Capability {
        name: "read_all",
        kind: CapabilityKind::Io,
    },
    // Transforms
    Capability {
        name: "sort",
        kind: CapabilityKind::Transform,
    },
    Capability {
        name: "filter",
        kind: CapabilityKind::Transform,
    },
    Capability {
        name: "replace",
        kind: CapabilityKind::Transform,
    },
    Capability {
        name: "dedupe",
        kind: CapabilityKind::Transform,
    },
    Capability {
        name: "transpose",
        kind: CapabilityKind::Transform,
    },
    Capability {
        name: "select",
        kind: CapabilityKind::Transform,
    },
    // Analytics-ish
    Capability {
        name: "head",
        kind: CapabilityKind::Analytics,
    },
    Capability {
        name: "tail",
        kind: CapabilityKind::Analytics,
    },
    Capability {
        name: "describe",
        kind: CapabilityKind::Analytics,
    },
    // Advanced
    Capability {
        name: "validate",
        kind: CapabilityKind::Advanced,
    },
    Capability {
        name: "profile",
        kind: CapabilityKind::Advanced,
    },
    Capability {
        name: "schema",
        kind: CapabilityKind::Advanced,
    },
];

pub const FORMATS: &[&str] = &["csv", "xlsx", "xls", "ods", "parquet", "avro", "json"];