csv-to-excel
将 CSV 文件转换为专业格式的 Excel 工作簿,并具有中文字符支持、自动格式设置和多表功能。当用户需要执行以下操作时使用:(1) 将单个 CSV 转换为 Excel,(2) 将多个 CSV 文件合并为一个带有单独工作表的 Excel,(3) 使用标题、边框和自动调整列设置 CSV 数据格式,(4) 处理 CSV 文件中的中文或其他非 ASCII 字符,或 (5) 从 CSV 数据创建专业的 Excel 报告。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~xuanguan2020-csvtoexcelcURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~xuanguan2020-csvtoexcel/file -o xuanguan2020-csvtoexcel.md# CSV To Excel Converter ## Overview This skill enables conversion of CSV files to Excel format with professional formatting, proper encoding handling for Chinese characters, and support for combining multiple CSV files into a single Excel workbook with separate sheets. ## Quick Start Use the `csv_to_excel.py` script for all conversions: ```bash # Single CSV to Excel python scripts/csv_to_excel.py input.csv output.xlsx # Multiple CSVs to one Excel (each becomes a sheet) python scripts/csv_to_excel.py file1.csv file2.csv file3.csv --output combined.xlsx # With custom sheet names python scripts/csv_to_excel.py sales.csv inventory.csv --output report.xlsx --sheet-names "销售数据" "库存数据" ``` ## Features ### Automatic Encoding Detection - Detects CSV encoding automatically (UTF-8, GBK, GB2312, UTF-8-SIG) - Ensures Chinese characters display correctly in Excel - No manual encoding specification needed ### Professional Formatting - **Header row**: Bold white text on blue background - **Borders**: Thin borders around all cells - **Column widths**: Auto-adjusted based on content (handles Chinese characters properly) - **Frozen panes**: Header row frozen for easy scrolling - **Alignment**: Headers centered ### Multi-Sheet Support - Combine multiple CSV files into one Excel workbook - Each CSV becomes a separate sheet - Custom sheet names supported - Sheet names default to CSV filenames (max 31 characters) ## Common Usage Patterns ### Pattern 1: Single File Conversion User says: "Convert this data.csv to Excel" ```bash python scripts/csv_to_excel.py data.csv data.xlsx ``` ### Pattern 2: Multiple Files to Multi-Sheet Excel User says: "Combine these CSV files into one Excel, each file as a separate sheet" ```bash python scripts/csv_to_excel.py sales_2024.csv sales_2025.csv inventory.csv --output report.xlsx ``` Result: `report.xlsx` with 3 sheets named "sales_2024", "sales_2025", "inventory" ### Pattern 3: Custom Sheet Names User says: "Create an Excel with these CSVs and name the sheets in Chinese" ```bash python scripts/csv_to_excel.py q1.csv q2.csv q3.csv q4.csv --output 年度报告.xlsx --sheet-names "第一季度" "第二季度" "第三季度" "第四季度" ``` ### Pattern 4: Handling Chinese Content User says: "This CSV has Chinese text and it shows as garbled characters in Excel" The script automatically detects encoding and handles Chinese characters: ```bash python scripts/csv_to_excel.py 中文数据.csv 输出.xlsx ``` ## Technical Details ### Encoding Support The script tries these encodings in order: 1. UTF-8 2. GBK (common for Chinese Windows) 3. GB2312 (simplified Chinese) 4. UTF-8-SIG (UTF-8 with BOM) 5. Latin1 (fallback) ### CSV Dialect Detection - Automatically detects delimiter (comma, semicolon, tab, etc.) - Handles quoted fields - Works with various CSV formats ### Column Width Calculation - Chinese characters counted as 2 width units - ASCII characters counted as 1 width unit - Maximum width capped at 50 for readability - Adds 2 units padding for visual comfort ## Dependencies The script requires `openpyxl`: ```bash pip install openpyxl ``` ## Troubleshooting **Issue**: Chinese characters still appear garbled - **Solution**: The CSV file may have a rare encoding. Try converting the CSV to UTF-8 first using a text editor. **Issue**: Sheet name error - **Solution**: Excel sheet names must be ≤31 characters. The script auto-truncates, but you can specify shorter custom names. **Issue**: Empty sheets created - **Solution**: Check that CSV files are not empty and are properly formatted. **Issue**: Script not found - **Solution**: Run the script from the skill directory or use the full path: `python .kiro/skills/csv-to-excel/scripts/csv_to_excel.py`