Skip to main content

Fast spreadsheet viewer, filter and processor - 查表,闪电般的表格查阅筛选工具

Project description

ChaBiao 查表 - Fast Spreadsheet Viewer, Filter & Processor

⚡ Lightning-fast spreadsheet viewer, filter and processor. Built for large Excel files (15MB+, 20K+ rows) that make Excel choke on filter dropdowns.

ChaBiao GUI — Light Theme ChaBiao GUI — Dark Theme

Features

  • Fast Filtering: Instant column filtering - no more waiting for Excel's filter dropdowns
  • Keyword Search: Full-text search across all columns with regex support
  • Spotlight / Focus Cell: Highlight active row and column for easy reading (聚光灯功能) ChaBiao GUI — Spotlight
  • Multi-Sheet Tabs: Switch between sheets with tab widget (auto-hidden for single-sheet files)
  • Column Sorting: Click column headers to sort ascending/descending
  • Cross-Reference: Search in one table, extract columns to another (查表整合)
  • Data Charts: Optional pyqtgraph chart visualization for numeric columns
  • Multi-format: .xlsx, .xls, .csv, .tsv, .xlsm, .ods
  • Three Interfaces: CLI, PySide6 GUI, and Web (FastAPI)
  • 10 Languages: 🇨🇳 中文 · 🇺🇸 English · 🇯🇵 日本語 · 🇫🇷 Français · 🇷🇺 Русский · 🇩🇪 Deutsch · 🇪🇸 Español · 🇧🇷 Português · 🇮🇹 Italiano · 🇰🇷 한국어
  • Dark Theme: Catppuccin-inspired dark theme for GUI and Web
  • Pagination: 500 rows/page for smooth scrolling on large files
  • Data Aggregation: Pivot tables, group-by, subtotals
  • File Comparison: Merge and compare two spreadsheet files
  • Export: Convert between formats (xlsx, csv, json, tsv), web export with pagination
  • Agent Integration: OpenAI function-calling tools for AI agents

Requirements

  • Python >= 3.10
  • pandas >= 2.0
  • openpyxl >= 3.1
  • tabulate >= 0.9

Optional:

  • PySide6 >= 6.5 (for GUI)
  • pyqtgraph >= 0.13 (for charts, optional)
  • FastAPI + uvicorn (for Web)

Installation

# Basic (CLI only)
pip install chabiao

# With GUI support (includes pyqtgraph for charts)
pip install chabiao[gui]

# With Web support
pip install chabiao[web]

# Everything
pip install chabiao[all]

# Development
pip install chabiao[dev]

Quick Start

CLI

# Open and inspect a spreadsheet
chabiao open data.xlsx

# Filter by column with various conditions
chabiao filter data.xlsx --column City --contains Beijing
chabiao filter data.xlsx --column Price --gt 100 --lt 500
chabiao filter data.xlsx --column Sales --top-n 10

# Search for a keyword across columns
chabiao search data.xlsx --keyword error --columns Message,Level

# Aggregate data (like Excel pivot table)
chabiao aggregate data.xlsx --group-by City --agg Sales:sum --agg Price:mean

# Compare/merge two files
chabiao compare data1.xlsx data2.xlsx --on ID --how left

# Export to different format
chabiao export data.xlsx -o output.csv --format csv

# Spotlight on a specific row
chabiao spotlight data.xlsx --row 100 --column Price

Python API

from chabiao import open_file, filter_data, search_data, spotlight_view

# Open a spreadsheet
result = open_file(input_path="data.xlsx")
print(result.success)    # True
print(result.data)       # File info and metadata

# Filter data
result = filter_data(input_path="data.xlsx", column="City", contains="Beijing")
print(result.data["total_rows"])  # Number of matching rows

# Search across columns
result = search_data(input_path="data.xlsx", keyword="error", columns=["Message"])
print(result.data["total_matches"])

# Spotlight on a row
result = spotlight_view(input_path="data.xlsx", row=100, column="Price")
print(result.data["row_data"])       # Full row data
print(result.data["column_stats"])   # Column statistics

GUI

# Launch GUI
chabiao-gui

# Open a file directly
chabiao-gui data.xlsx

# Open with dark theme and Chinese
chabiao-gui data.xlsx --theme dark --lang zh

# Custom page size
chabiao-gui data.xlsx --page-size 200

ChaBiao GUI — Filter ChaBiao GUI — Multi-Sheet

Features:

  • Open file from command line: chabiao-gui data.xlsx
  • CLI options: --lang zh --theme dark --page-size 200
  • Multi-language support (10 languages): View → Language
  • Light/Dark theme switching: View → Theme
  • Instant column filter (contains/equals/regex/search)
  • Spotlight mode (F6) to highlight rows and columns
  • Column sorting by clicking headers
  • Multi-sheet tab switching
  • Chart visualization (F7, requires pyqtgraph)
  • Pagination for large files (500 rows/page)
  • Copy selection to clipboard (Ctrl+C)
  • Export to CSV/JSON/Excel

Web Interface

chabiao-web
# or
python -m chabiao --web

Open http://localhost:8900 in your browser. Supports language (?lang=zh) and theme (?theme=dark) URL parameters. Web export supports pagination with ?start=0&limit=1000 for large datasets.

Usage

CLI Unified Flags

Flag Description
-V, --version Show version
-v, --verbose Verbose output
-o, --output Output file path
--json Output as JSON
-q, --quiet Suppress non-essential output

CLI Commands

Command Description
open Open and inspect a spreadsheet
filter Filter data by column conditions
search Search keyword across columns
aggregate Aggregate data by grouping
compare Compare/merge two spreadsheet files
export Export data to different format
spotlight Focus on a specific row/cell

Filter Options

Option Description
--contains Text contains filter
--regex Regex pattern filter
--equals Exact match filter
--not-equals Not equal filter
--gt / --lt Greater than / Less than
--ge / --le Greater/Less than or equal
--top-n Top N values
--bottom-n Bottom N values
--above-avg Above average
--below-avg Below average

Agent Integration (OpenAI Function Calling)

from chabiao.tools import TOOLS, dispatch

# Use TOOLS in your OpenAI API call
response = client.chat.completions.create(
    model="gpt-4",
    messages=[...],
    tools=TOOLS,
)

# Dispatch tool calls
for tool_call in response.choices[0].message.tool_calls:
    result = dispatch(tool_call.function.name, tool_call.function.arguments)
    print(result)

Available tools:

  • chabiao_open_file - Open and inspect spreadsheet
  • chabiao_filter_data - Filter with various conditions
  • chabiao_search_data - Search keywords across columns
  • chabiao_aggregate_data - Group and aggregate data
  • chabiao_compare_data - Compare/merge two files
  • chabiao_export_data - Export to different format
  • chabiao_spotlight - Focus on a specific row/cell

Development

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

# Lint and format
ruff format . && ruff check .

# Type check
mypy chabiao

# Build
python -m build

License

GPL-3.0-or-later

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chabiao-0.4.1.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chabiao-0.4.1-py3-none-any.whl (42.4 kB view details)

Uploaded Python 3

File details

Details for the file chabiao-0.4.1.tar.gz.

File metadata

  • Download URL: chabiao-0.4.1.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for chabiao-0.4.1.tar.gz
Algorithm Hash digest
SHA256 dada7f20f6f33b92ae5e4657b6015a176520e161b7a1b56e08abc63878179d4f
MD5 71941c4fdbbeeaa276d9d62521d9446f
BLAKE2b-256 99d2b59d0cd4cbb375d17dd5b35f7ff3ef895a7e2e6decd1fd71e9e5876fe849

See more details on using hashes here.

File details

Details for the file chabiao-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: chabiao-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 42.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for chabiao-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 280ce477d8c7efd15c243d34f935951378f0f075346a99f14a8f9915c2788288
MD5 07566f4ea8fd162de5d22840be4dcb1f
BLAKE2b-256 a4ab5cf0cacb473f7890de6fe3399d5eb6e174b7edff62e78fd83fc0c0468957

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page