CLI下的Excel编辑器
顾名思义,Excel_editer_for_CLI.py是一款为CLI(命令行界面)提供简单Excel文件查看和编辑功能的工具。说老实话,这个需求还是挺冷门的,excel本身就应该在GUI下被使用,CLI下的访问编辑实在是难以理解,而说来本人还真有这个需求,所以用ptyhon做了这个工具,当然不可能完善整个excel的全部功能,只写了几个近期可能会用到的简单功能,觉得做到能看,能删,能改就足够了。
- 设定显示范围(行数/列数)
- 移动光标
- 移动显示范围
- 切换当前sheet
- 创建/删除sheet
隐藏/解除隐藏当前行/列#维护中- 设定不同列的列宽
- 编辑当前光标指向的单元格的值
- 保存/另存为文件
- 采用交互式操作方式,命令简单易学,命令尽可能保持vim风格
- linux
- python3
- 执行
python3 ./excel_editer_for_CLI.py -i test.xlsx
此时显示如下内容,主体默认显示第二行/第二列的前四行前四列 每列的默认宽度为8,每个单元格超过宽度的部分被隐藏,但类似Excel的设计,光标=>
标识的当前单元格的详细内容会显示在表格上方Cell Value
内 表格下方会显示当前Excel文件的不同sheet,且用[sheetname
]方式标识当前sheet
在markdown下显示字符画表格似乎没对齐,在CLI下是正常的
[INFO]
┌======================================================┐
│ Cell Value : (B2) => Darkest.Hour │
└======================================================┘
┌──────────┬──────────┬──────────┬──────────┬──────────┐
│ [new] │ (B)英文 │ (C)中文 │ (D)文件 │ (E)关键 │
├──────────┼──────────┼──────────┼──────────┼──────────┤
│ (2)2 │ => Darke │ │ Darkest. │ 至暗时刻 │
│ (3)3 │ Justice. │ │ Justice. │ 正义联盟 │
│ (4)10 │ Captain. │ │ Captain. │ 美国队长 │
│ (5)11 │ The.Incr │ │ The.Incr │ 超人总动 │
└──────────┴──────────┴──────────┴──────────┴──────────┘
┌======================================================┐
│ Sheet 1/4 [new] Sheet1 test test1 │
└======================================================┘
[INFO] Please enter command:
2.指令格式描述
一般来说指令允许包含三个部分,ops
obj
arg
,即指令、对象和参数
允许三种合法的指令格式 : ops obj arg
或ops arg
或ops
下文描述指令时会以[指令格式]的形式描述其允许的合法格式
3.移动光标[ops arg][ops]
使用hjkl
移动光标,允许在ops
后添加arg
表示重复若干次,为了命令具有统一的格式,命令格式略微不同于vim的命令格式
如输入以下指令后:
l 3 #右移3格
j 2 #下移2格
h #左移1格
将会显示如下内容,此时光标已经从B2移动到D4单元格
[INFO]
┌======================================================┐
│ Cell Value : (D4) => Captain.America.Civil.War.2016. │
│ BluRay.720p.DTS.x264-MTeam │
└======================================================┘
┌──────────┬──────────┬──────────┬──────────┬──────────┐
│ [new] │ (B)英文 │ (C)中文 │ (D)文件 │ (E)关键 │
├──────────┼──────────┼──────────┼──────────┼──────────┤
│ (2)2 │ Darkest. │ │ Darkest. │ 至暗时刻 │
│ (3)3 │ Justice. │ │ Justice. │ 正义联盟 │
│ (4)10 │ Captain. │ │ => Capta │ 美国队长 │
│ (5)11 │ The.Incr │ │ The.Incr │ 超人总动 │
└──────────┴──────────┴──────────┴──────────┴──────────┘
┌======================================================┐
│ Sheet 1/4 [new] Sheet1 test test1 │
└======================================================┘
[INFO] Please enter command:
4.移动视图[ops arg][ops]
使用HJKL
移动光标,允许在ops
后添加arg
表示重复若干次,效果类似移动光标,不再赘述
注:只有移动光标和移动视图区分指令大小写,其他指令不区分大小写
5.编辑当前单元格[ops arg]
输入指令:
e $string
将当前单元格重写为“$string",如需填写为空,则填写为e None
6.移动Sheet[ops]
使用p
| n
来切换上一个、下一个sheet
7.创建/删除Sheet[ops arg]
使用c $sheetname
来创建名为$sheetname的新sheet
使用r $sheetname
来删除名为$sheetname
8.设置显示范围[ops obj arg]
使用num c $col_num
设置显示列数
使用num r $row_num
设置显示行数
9.设置列宽[ops arg][ops]
使用w $width
来统一设置所有列宽
使用w $col $width
来设置指定列列宽
10.清空当前行/列[ops arg]
使用f r
来清空当前行
使用f c
来清空当前列
11.保存当前文件[ops]
如修改过文件,需要使用:w
或save
来保存文件并退出
12.退出
使用q
, quit
退出