xll-utils
PE/COFF parsing and export verification utilities for Excel XLL development.
xll-utils complements xll-rs (runtime) and xllgen (proc-macros) by providing tools to inspect, verify, and manage XLL add-in binaries.
Features
- PE/COFF parsing — Read export tables, architectures, and metadata from DLL/XLL files
- Export verification — Verify that a built XLL contains all required exports
- XLL metadata — Extract XLL-specific information (entry points, export lists)
- Windows registry — Find, register, and unregister XLLs in Excel's registry keys (Windows only)
- Build script helpers — Verify exports at compile time from
build.rs - CLI tool —
xllutilsbinary for command-line inspection
Installation
Add to your Cargo.toml:
[]
= "0.1"
Feature flags
| Feature | Default | Description |
|---|---|---|
serde |
no | Enables JSON serialization for all public types |
cli |
no | Builds the xllutils CLI binary |
build |
no | Build script helpers (verify_exports_in_build, etc.) |
To install the CLI:
Quick start
Parse a PE file and list exports
use parse_pe_file;
let pe = parse_pe_file.unwrap;
println!;
println!;
for name in pe.export_names
Verify expected exports
use verify_dll_exports;
let expected = &;
let report = verify_dll_exports.unwrap;
if report.complete else
Extract XLL metadata
use xll_info;
let info = xll_info.unwrap;
println!;
Build script verification
In your Cargo.toml:
[]
= { = "0.1", = ["build"] }
In your build.rs:
CLI usage
xllutils list-exports my_xll.xll [-o] [-A]
xllutils verify my_xll.xll -e xlAutoOpen,xlAutoClose,xlAutoFree12 [-s]
xllutils xll-info my_xll.xll [--json]
xllutils diff first.xll second.xll
xllutils find-xlls # Windows only
Examples
List exports with ordinals:
$ xllutils list-exports my_xll.xll -o
my_xll.xll (x64, 9 exports)
xlAutoOpen ordinal=1
xlAutoClose ordinal=2
xlAutoFree12 ordinal=3
...
Verify required exports:
$ xllutils verify my_xll.xll -e xlAutoOpen,xlAutoClose,xlAutoFree12
Verification: my_xll.xll
Architecture: x64
Total exports: 9
Found: 3 / 3
Result: OK