diff --git a/dexcel/README.md b/dexcel/README.md index 2ff7114..1784234 100644 --- a/dexcel/README.md +++ b/dexcel/README.md @@ -11,15 +11,17 @@ - 📊 **count**: 快速统计行数,适合脚本使用 - ➕ **insert**: 插入新行,支持指定位置或追加到末尾 - ✏️ **update**: 更新现有数据,支持部分列更新 -- ❌ **delete**: 删除行,带安全确认机制 +- ❌ **delete**: 删除行,支持灵活的起始位置和数量控制 - 🎨 **style**: 设置样式(行高、列宽、自动换行) ### 通用特性 - 📑 **多 Sheet 支持**: 所有操作都支持 `--sheet` 参数指定工作表 - 🔢 **负数索引**: 支持负数行号(-1 表示最后一行) -- ⚠️ **安全确认**: delete 操作需要用户确认 +- ⚠️ **安全确认**: delete 操作默认需要用户确认,可用 `-y` 跳过 - 💾 **样式保留**: 使用 umya-spreadsheet 库,完整保留 Excel 样式 - 📤 **表格输出**: query 以美观的表格格式显示数据 +- 📅 **日期智能**: 自动识别和格式化日期时间单元格 +- 🧹 **备份清理**: 操作成功后自动删除 .bak 备份文件 ## 📦 安装 @@ -158,27 +160,36 @@ dexcel data.xlsx update "新值" --row 1 --sheet "Sheet2" ### 5. 删除数据 (delete) ```bash -# 删除前10行 -dexcel data.xlsx delete 10 +# 删除第5行(需要确认) +dexcel data.xlsx delete 5 -# 删除后5行 -dexcel data.xlsx delete -5 +# 从第3行开始删除5行(跳过确认) +dexcel data.xlsx delete 3 --count 5 -y -# 删除第3到第8行 -dexcel data.xlsx delete 3 8 +# 删除最后一行 +dexcel data.xlsx delete -1 -y + +# 删除最后3行 +dexcel data.xlsx delete -3 --count 3 -y # 指定 Sheet dexcel data.xlsx delete 1 --sheet "Sheet2" ``` #### delete 参数说明 -- ``: 删除范围,支持以下格式: - - `N` - 删除前 N 行(如 `delete 10` 删除前10行) - - `-N` - 删除后 N 行(如 `delete -10` 删除后10行) - - `START END` - 删除从 START 到 END 行(如 `delete 1 10` 删除第1到第10行) +- ``: 起始行号(必需,支持负数) + - 正数:从前往后数(如 `5` 表示第5行) + - 负数:从后往前数(如 `-1` 表示最后一行) +- `--count `: 删除的行数(默认1) +- `-y, --yes`: 跳过确认 - `--sheet `: Sheet 名称(可选) -**注意**: delete 操作需要用户确认(输入 y 继续),请谨慎操作! +**使用示例**: +- `dexcel file.xlsx delete 5` - 删除第5行(需确认) +- `dexcel file.xlsx delete 5 --count 3 -y` - 从第5行开始删除3行(跳过确认) +- `dexcel file.xlsx delete -1 --count 2 -y` - 删除最后2行 + +**注意**: delete 操作默认需要用户确认(输入 y 继续),可使用 `-y` 跳过确认。 ### 6. 设置样式 (style) @@ -264,14 +275,14 @@ done ### 示例 4: 数据清理 ```bash -# 删除前5行 -dexcel data.xlsx delete 5 +# 删除第5行 +dexcel data.xlsx delete 5 -y + +# 从第10行开始删除5行 +dexcel data.xlsx delete 10 --count 5 -y # 删除最后3行 -dexcel data.xlsx delete -3 - -# 删除第10到第20行 -dexcel data.xlsx delete 10 20 +dexcel data.xlsx delete -3 --count 3 -y ``` ### 示例 5: 多 Sheet 操作 @@ -355,9 +366,7 @@ dexcel data.xlsx style --rows 1 --row-height 20 --sheet "Sheet2" **delete 成功**: ``` -✓ 操作成功:已删除第 5 行到第 10 行(共 6 行) - 剩余行数: 94 - 文件: data.xlsx, Sheet: Sheet1 +✓ 已删除第 5 至 7 行(共 3 行) ``` ## ⚙️ 技术细节 @@ -386,11 +395,15 @@ dexcel data.xlsx style --rows 1 --row-height 20 --sheet "Sheet2" - 浮点数 (Float) - 布尔值 (Bool) - 日期时间 (DateTime) - 自动识别并格式化 + - `2024-01-15` → 显示为 `2024-01-15` + - `2024-12-25 14:30:00` → 显示为 `2024-12-25 14:30:00` + - `14:30:00` → 显示为 `14:30:00` - 空值 (Empty) - 错误值 (Error) **写入时:** - 所有数据都作为字符串写入 +- 日期时间自动识别并转换为 Excel 序列号 - 样式完全保留 ## ⚠️ 注意事项 @@ -400,11 +413,11 @@ dexcel data.xlsx style --rows 1 --row-height 20 --sheet "Sheet2" 3. **文件必须存在**: insert/update/delete 操作要求文件必须已存在 4. **分隔符默认**: 默认使用 `|` 分隔列 5. **文件格式**: 仅支持 `.xlsx`,不支持 `.xls` -6. **删除需确认**: delete 操作必须用户确认才能执行 -7. **日期自动识别**: 自动识别并格式化日期单元格 -8. **不可撤销**: delete 操作不可撤销,请谨慎操作! -9. **删除范围**: delete 支持多种删除模式(前N行、后N行、指定范围) -10. **样式保留**: 使用 umya-spreadsheet 库,完整保留 Excel 样式 +6. **删除需确认**: delete 操作默认需要用户确认,可用 `-y` 跳过 +7. **日期自动识别**: 自动识别并格式化日期单元格 (如 `2024-01-15`, `2024-12-25 14:30:00`) +8. **样式保留**: 使用 umya-spreadsheet 库,完整保留 Excel 样式 +9. **备份清理**: 操作成功后自动删除 .bak 备份文件 +10. **不可撤销**: delete 操作不可撤销,请谨慎操作! 11. **样式设置**: style 命令可设置行高、列宽、自动换行等样式 ### 限制 @@ -445,7 +458,7 @@ dexcel data.xlsx insert "数据3|数据4" ```bash dexcel data.xlsx query -5 # 最后5行 -dexcel data.xlsx delete -1 # 删除最后一行 +dexcel data.xlsx delete -1 -y # 删除最后一行 ``` ### Q4: 如何处理中文内容? @@ -471,6 +484,13 @@ if ((dexcel data.xlsx count) -gt 100) { 不能撤销,请谨慎操作!建议先备份文件。 +### Q7: 如何跳过删除确认? + +使用 `-y` 或 `--yes` 参数: +```bash +dexcel data.xlsx delete 5 --count 3 -y +``` + ## 🎯 应用场景 ### 1. 数据预览 @@ -502,11 +522,14 @@ dexcel data.xlsx update "新值" --row 6 --cell 2 ### 5. 数据清理 删除错误数据: ```bash -# 删除前5行 -dexcel data.xlsx delete 5 +# 删除第5行 +dexcel data.xlsx delete 5 -y -# 删除第10到第20行 -dexcel data.xlsx delete 10 20 +# 从第10行开始删除5行 +dexcel data.xlsx delete 10 --count 5 -y + +# 删除最后3行 +dexcel data.xlsx delete -3 --count 3 -y ``` ### 6. 自动化脚本