Skip to content

jacklee023/excel_editor_for_CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

excel_editer_for_CLI

CLI下的Excel编辑器

1.背景及简介

顾名思义,Excel_editer_for_CLI.py是一款为CLI(命令行界面)提供简单Excel文件查看和编辑功能的工具。说老实话,这个需求还是挺冷门的,excel本身就应该在GUI下被使用,CLI下的访问编辑实在是难以理解,而说来本人还真有这个需求,所以用ptyhon做了这个工具,当然不可能完善整个excel的全部功能,只写了几个近期可能会用到的简单功能,觉得做到能看,能删,能改就足够了。

2.功能描述

Excel_editer_for_CLI.py 提供如下功能:

  • 设定显示范围(行数/列数)
  • 移动光标
  • 移动显示范围
  • 切换当前sheet
  • 创建/删除sheet
  • 隐藏/解除隐藏当前行/列 #维护中
  • 设定不同列的列宽
  • 编辑当前光标指向的单元格的值
  • 保存/另存为文件
  • 采用交互式操作方式,命令简单易学,命令尽可能保持vim风格

3.环境依赖

  • linux
  • python3

使用方法

  1. 执行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 argops argops 下文描述指令时会以[指令格式]的形式描述其允许的合法格式

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]

如修改过文件,需要使用:wsave来保存文件并退出

12.退出 使用q, quit退出

About

CLI下的Excel编辑器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages