Expand description
This crate embeds the open dataset US Search Demand for Excel & Google Sheets
Templates — 1,008 Keywords (2026) and exposes a small, zero-dependency Rust API to
query it. The source CSV is embedded in the binary via include_str! and parsed
lazily by a tiny internal parser — no allocation beyond the returned rows, no
external crates.
§What the data contains
1,008 template-related search queries (US, English) with their estimated monthly US search volume for 2026, grouped into 16 practical categories — project management, bookkeeping & accounting, CRM & sales KPIs, HR & payroll scheduling, invoicing, construction, real estate, weddings & events, and more. 146 keywords also carry the URL of a free, no-signup spreadsheet implementation, so a keyword can be traced to the actual artifact behind the demand.
§Provenance
The dataset was compiled in 2026 by the Data & Research Team of TableTemplates, while building an open catalog of downloadable spreadsheet templates. Volumes are estimates derived from commercial keyword research tooling, deduplicated and manually categorized. The dataset is archived under DOI on Zenodo and Harvard Dataverse, and distributed under CC BY 4.0.
§Going further
The free implementations referenced by the dataset live in the free template library — every file there is a direct, no-signup download. Two category indexes are useful entry points into the highest-demand segments: the project management templates (largest category, 130 keywords) and the bookkeeping & accounting templates (highest demand density — 45 keywords, ~24,200 combined monthly searches).
§Example
use us_excel_template_data::catalog;
// The whole catalog.
let rows = catalog::all();
assert_eq!(rows.len(), 1008);
// The single highest-demand keyword.
let top = catalog::top(1);
assert_eq!(top[0].keyword, "excel accounting software");
assert_eq!(top[0].monthly_search_volume_us, 8250);
// Substring search, ordered by volume.
let hits = catalog::search("invoice");
assert!(hits.iter().all(|r| r.keyword.contains("invoice")));
// Demand aggregated by category.
let cats = catalog::categories();
assert_eq!(cats.len(), 16);Modules§
- catalog
- Query API over the embedded catalog CSV (1,008 rows).