Snapde軟件介紹Snapde是一款功能強大的編程軟件。Snapde官方版界面清爽簡約,使用簡單易上手,可支持CSV大文件的快速編輯,以及文件分割、合并、過濾、排序、刪除重復等基本功能。 Snapde軟件特色1、運行速度:打開CSV文件速度比Excel、WPS快四倍,上百兆的CSV文件打開只需十幾秒,上千萬行的排序都可以幾秒內完成 2、內存占用:文件內容全部放在內存中,純粹的C語言指針將內存使用優(yōu)化到極致,大部分情況內存也就比CSV文件大2-3倍,有些情況內存甚至比CSV文件還小 3、CSV大。嚎礄C器內存,一般8G內存機器可以一次編輯2G的CSV文件 4、最大行數:Excel2007以上版本最多為1048576行,Snapde可以編輯的行數是Excel十幾二十倍以上,一般8G內存機器都可以打開1000萬到2000萬行CSV進行編輯 5、分頁編輯:對于大于2G的CSV大數據,還可以進行分頁編輯一次打開1000萬行編輯保存,然后打開下1000萬行進行編輯保存。。。 6、數據運算:軟件集合了Exprtk、C、python語言執(zhí)行器;經測試Exprtk執(zhí)行效率比C#、java慢一點(20%),C語言比C#、java快很多,python比Exprtk、C慢10倍左右但可用資源多;不用說Excel的VBA,這三種語言都可以直接虐殺它 7、運行環(huán)境:windows Snapde功能介紹一、文件功能 1、新建電子表格,默認是299行、25列,如果想要增加行數可以在底下空白處雙擊鼠標左鍵一次添加300行,想要增加列數可以在右邊空白處雙擊鼠標左鍵一次添加26列;如果想要精確控制行列數可以在編輯下的編輯行列數菜單設置具體行列數 2、打開CSV、TXT、smd文件,CSV是逗號分隔的文本文件,TXT是tab鍵分割的文本文件,smd是Snapde自身定義的文件格式(打開保存速度比CSV、TXT快兩倍),軟件可以自動識別GBK、UTF8、UNICODE編碼,保存只能保存成GBK編碼 3、分頁打開,如果CSV文件太大可以進行非凡也打開,指定是否保留第一行標題、開始行號、一次打開的行數 4、文件保存,新建、打開、分頁打開的文件進行保存 5、另存,當前文件可以另存為新文件或者新格式文件 6、追加,將很多子文件追加打開到本文件中,如果第一行標題相同會自動過濾掉新文件標題行 7、分割,將本文件分割保存成多個子文件,包括:是否保留第一行標題,按行數分割或者按文件數分割 二、編輯功能 1、靈活的選擇集:全選、行選、列選、框選 2、單元格非常優(yōu)秀的多行編輯功能,單元格支持編輯幾兆到幾十兆的多行文本 3、編輯支持包含數字的序列變化:框選需要變化的單元格進行編輯,按住ctrl鍵然后完成編輯,如果編輯內容中存在數字這些單元格會得到序列變化內容,否則內容相同 4、強大的撤銷、重做功能 5、支持對選擇集的剪切、復制、粘貼 6、清除內容 7、刪除:刪除選定行、列 8、全選 9、插入行/列:在選定行或列前面可以插入一行或一列 10、恢復寬高:將選定的行或列恢復成默認的寬高 11、隱藏:將選定的行或列進行隱藏 12、取消隱藏:將選定行或列中間的隱藏行列進行顯示 13、放大、縮。簩﹄娮颖砀襁M行放大或縮小 14、轉跳:轉跳到指定的行列 15、設置過濾:對選擇集設置過濾(如果只選擇了一個單元格那就是對全部進行過濾),只顯示過濾條件內的數據 16、刪除重復:對選擇集中的重復數據進行刪除(包括擴選整行刪除) 17、升序排序:對選擇集進行升序排序(包括擴選整行排序) 18、降序排序:對選擇集進行降序排序(包括擴選整行排序) 19、隔行顏色:設置單雙行背景顯示不同顏色 20、添加300行:往后面添加300行 21、添加26列:往后面添加26列 22、設置行列數:精確設置電子表格的行列數 三、搜索 1、查找:往前、往后查找、計數 2、替換:替換下一個、全部替換 四、腳本 1、設置Exprtk腳本:將單元格設置為Exprtk腳本,可以在單元格進行腳本編輯和運行 2、設置TCC腳本:將單元格設置為C語言腳本,可以在單元格進行腳本編輯和運行 3、設置Python腳本:將單元格設置為Python腳本,可以在單元格進行腳本編輯和運行 4、設置普通文本 5、運行選擇腳本:將選擇集中腳本單元格按從左到右、從上往下運行 6、運行全部腳本:將電子表格中所欲腳本單元格按從左到右、從上往下運行 五、腳本接口 1、Exprtk腳本接口 A、Exprtk語法:https://github.com/ArashPartow/exprtk B、Snapde封裝的Expr接口: 單元格的數字變量,如:A1,代表第一行第一列的單元格數字變量,可以用它獲取此單元格的值,也可以直接賦值數字 單元格的字符串變量,如:A1_,代表第一行第一列的單元格字符串變量,可以用它獲取此單元格的字符串,也可以直接賦值字符串 a、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),將row、col、指定單元格設置為數字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(),獲取從操作系統(tǒng)啟動到現在所經過的毫秒數 l、save(),保存當前文件,成功返回1,失敗返回0 m、save_as(file),將當前電子表格另存為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),將row、col、指定單元格設置為數字num c、get_(int row,int col, char **data),獲取row、col指定單元格的字符串,將結果放到data里,如果是是數字則將數字轉化成字符串,注意:*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(),獲取從操作系統(tǒng)啟動到現在所經過的毫秒數 g、save(),保存當前文件,成功返回1,失敗返回0 h、save_as(char *file),將當前電子表格另存為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模塊:import Snapde a、Snapde.get(int row, int col),獲取row、col指定單元格的數字,如果是非數字字符串則返回0 b、Snapde.set(int row, int col, double num),將row、col、指定單元格設置為數字num c、Snapde.get_(int row,int col),獲取row、col指定單元格的字符串,如果是是數字則將數字轉化成字符串 d、Snapde.set_(int row, int col, char *str),將row、col、指定單元格設置為字符串str e、Snapde.set_progress(int n),設置進度條進度n,n的范圍從0到100 f、Snapde.get_tick_count(),獲取從操作系統(tǒng)啟動到現在所經過的毫秒數 g、Snapde.save(),保存當前文件,成功返回1,失敗返回0 h、Snapde.save_as(char *file),將當前電子表格另存為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秒 |