20.1MB
1.32MB
Snapde是一款功能强大的编程软件。Snapde正式版界面清爽简洁,使用方便。它可以支持大型CSV文件的快速编辑,以及文件分割、合并、过滤、排序和删除重复等基本功能。
Snapde软件功能
1.运行速度:打开CSV文件的速度比Excel和WPS快4倍。打开几百兆的CSV文件只需要十秒钟,几秒钟就可以完成几千万行的排序。2.内存占用:文件的所有内容都存储在内存中,纯C语言指针将内存使用优化到极致。在大多数情况下,内存比CSV文件大2-3倍,在某些情况下,内存甚至比CSV文件更小。
3.CSV大小:看机器内存。一般8G内存的机器一次可以编辑2G的CSV文件。
4.最大行数:2007以上的Excel版本最多有1048576行,Snapde可以编辑的行数是Excel的十几二十倍。一般8G内存的机器可以打开1000万到2000万行CSV进行编辑。
5.分页编辑:对于大于2G的CSV大数据,也可以通过一次性打开1000万行进行编辑保存,然后再打开接下来的1000万行进行编辑保存的方式进行分页编辑。。。
6.数据操作:软件集成了Exprtk、C和python语言执行器;测试显示,Exprtk的执行效率比C#和java慢一点(20%),C语言比C#和java快很多,python比Exprtk和C慢10倍左右,但可用资源更多。Excel的VBA就不用说了,三种语言都能直接干掉它。
7.操作环境:windows
Snapde功能介绍
一.文件功能1.默认情况下,创建一个299行25列的新电子表格。如果要增加行数,可以在底部空白处双击鼠标左键,一次增加300行。如果要增加列数,可以在右边空白处双击鼠标左键,一次增加26列。如果想精确控制行数和列数,可以在“编辑”下的“编辑行数”菜单中设置具体的行数和列数。
2.打开CSV、TXT和smd文件。CSV是逗号分隔的文本文件,TXT是制表符分隔的文本文件,smd是Snapde自己定义的文件格式(打开和保存速度是CSV和TXT的两倍)。软件可以自动识别GBK,UTF8和UNICODE编码,保存只能保存为GBK编码。
3.页面打开。如果CSV文件太大,可以专门打开。指定是否保留首行标题、起始行号和一次打开的行数。
4.文件保存:保存新创建、打开和分页的文件。
5.另存为,当前文件可以另存为新文件或新格式文件。
6.Append:将许多子文件追加到这个文件中。如果第一行的标题相同,新文件的标题行将被自动过滤掉。
7.Split,将此文件保存为多个子文件,包括是否保留第一行标题,按行数还是按文件数拆分。
二、编辑功能
1.灵活的选择集:全部选择、行选择、列选择和框选择。
2.单元格具有优秀的多行编辑功能,单元格支持编辑从几兆到几十兆的多行文本。
3.编辑支持带数字的序列变化:框住要修改的单元格,按住ctrl键,然后完成编辑。如果编辑的内容中有数字,这些单元格将得到连续的变化,否则,内容是相同的。
4.强大的撤销和重做功能。
5.支持选择集的剪切、复制和粘贴。
6.清除内容
7.删除:删除选中的行和列。
8.全选。
9.插入行/列:您可以在选定的行或列之前插入行或列。
10.恢复宽度和高度:将选定的行或列恢复到默认的宽度和高度。
1.隐藏:隐藏选定的行或列。
12.取消隐藏:在选定行或列的中间显示隐藏的行和列。
13.放大和缩小:放大或缩小电子表格。
14.跳转:跳转到指定的等级。
15.设置过滤器:为选择集设置过滤器(如果只选择了一个单元格,则过滤所有单元格),只显示符合过滤条件的数据。
16.删除重复:删除选择集中的重复数据(包括删除整行展开的选择)。
17.升序排序:按升序对选择集进行排序(包括整行展开的选择)。
18.降序排序:按降序对选择集进行排序(包括通过展开选择对整行进行排序)。
19.交错色:设置单线和双线的背景显示不同的颜色。
20.加300行:后面加300行。
1.加26列:后面加26列。
2.设置行数和列数:精确设置电子表格的行数和列数。
第三,搜索
1.搜索:向前和向后搜索和计数。
2.替换:替换下一个和所有的。
四。脚本
1.设置Exprtk脚本:将单元格设置为Exprtk脚本,可以在单元格中编辑和运行。
2.设置TCC脚本:将单元格设置为C语言脚本,可以在单元格中编辑运行。
3.设置Python脚本:将单元格设置为Python脚本,可以在单元格中编辑运行。
4.设置普通文本。
5.运行选择脚本:从左到右和从上到下运行选择集中的脚本单元。
6.运行所有脚本:在电子表格中从左到右、从上到下运行所需的脚本单元格。
动词 (verb的缩写)脚本界面
1.Exprtk脚本接口
一、Exprtk语法:http://github.com/ArashPartow/exprtk
B.Snapde封装的Expr接口:
单元格编号变量,如A1,表示第一行第一列的单元格编号变量,可用于获取该单元格的值或直接赋值。
的单元格字符串变量,比如A1_,表示第一行第一列的单元格字符串变量,可以用来获取该单元格的字符串或者直接赋值一个字符串。
一个to_lower(str),它将字符串转换为小写。
b,to_upper(str),将字符串转换成大写。
c,to_string(num),将数字转换成字符串。
d,to_number(str),将字符串转换为数字
e,get(row,col),获取row和col指定的单元格的编号,如果是非数字字符串则返回0。
f,set(row,col,num),将行、列和指定的单元格设置为数字num。
g,get_(row,col),获取row和col指定的单元格的字符串,如果是数字,则将数字转换成字符串。
h,set_(row,col,str),并将row,col和指定的单元格设置为字符串str。
I,set_progress(n),设置进度条的进度n,n的范围从0到100。
j,sleep(n),挂起周期为n毫秒,n为整数。
k,get_tick_count(),获取操作系统启动以来的毫秒数。
l,save(),保存当前文件,成功返回1,失败返回0。
m,save_as(file),将当前电子表格保存为file指定的文件(文件必须是带名称的完整路径),成功返回1,失败返回0。
n,get_row_count(),获取当前电子表格中的行数。
o,get_col_count(),获取当前电子表格中的列数。
p,resize(nRow,nCol),重置当前电子表格的行数和列数。nRow和nCol都需要大于1
2.c语言脚本
a、get(int row,int col,double *num),获取row和col指定的单元格的编号,将结果放入num中,如果是非数字字符串则返回0。
b、set(int row,int col,double num),将行、列和指定单元格设置为num num。
c,get_(int row,int col,char **data),获取row和col指定的单元格的字符串,将结果放入data。如果是一个数字,这个数字将被转换成一个字符串。注意:*数据指针不需要手动释放,但会在下次调用此函数或运行此脚本时自动释放。
d,set_(int row,int col,char *str),将row,col和指定单元格设置为字符串str。
e,set_progress(int n),设置进度条的进度n,n的范围从0到100。
f,get_tick_count(),获取自操作系统启动以来经过的毫秒数。
g、save(),保存当前文件,成功返回1,失败返回0。
h,save_as(char *file),将当前电子表格保存为file指定的文件(文件必须是带名称的完整路径),成功返回1,失败返回0。
I,get_row_count(),获取当前电子表格中的行数。
j,get_col_count(),获取当前电子表格中的列数。
k,resize(int nRow,int nCol),重置当前电子表格的行数和列数,nRow和nCol都需要大于1。
3.Python脚本
你需要引入snapde模块:在使用Snapde函数之前导入Snapde。
a、Snapde.get(int row,int col),获取row和col指定的单元格的编号,如果是非数字字符串则返回0。
b,snap de。set (int row,int col,double num),将row,col和指定的单元格设置为num。
c,Snapde.get_(int row,int col),获取row和col指定的单元格的字符串,如果是数字,则将数字转换成字符串。
d,snap de。set _ (int row,int col,char * str),并将行、列和指定的单元格设置为字符串str
E.Snapde.set_progress(int n),设置进度条的进度n,n的范围从0到100。
f,Snapde.get_tick_count(),获取操作系统启动以来的毫秒数。
g、Snapde.save(),保存当前文件,成功返回1,失败返回0。
h,Snapde.save_as(char *file),将当前电子表格保存为file指定的文件(文件必须是带名称的完整路径),成功返回1,失败返回0。
I,Snapde.get_row_count(),获取当前电子表格中的行数。
j,Snapde.get_col_count(),获取当前电子表格中的列数
k,Snapde.resize(int nRow,int nCol),重置当前电子表格的行数和列数,nRow和nCol都需要大于1。
第六,剧本表演
打开一个910M的CSV文件:london_crime_by_lsoa.csv,总共有13490605行7列94434235个单元格。使用三个脚本来执行简单的求和:
1.Exprtk脚本成本:4.343秒
2.c语言代价:1.203秒
3.Python语言花费:52.468秒