⑴ 下列選擇中,什麼是一種高級語言windows excel
Excel文件是常見的數據文件,數據分析過程中經常會用到。有時我們需要用程序代碼對 Excel 文件進行一些自動化處理,這需要程序語言能夠方便地解析 Excel 數據。
可以用於解析和處理 Excel 文件的程序語言一般有以下幾種:
1、 常規高級編程語言,比如 Java
2、 Excel VBA
3、 Python
4、 esProc SPL
本文依次介紹以上幾種程序語言解析Excel文件的特點,重點放在如何將Excel文件讀出為結構化數據,之後是用來再計算或是入庫或是其它用途,就只作簡單介紹。
一、 高級語言(以Java為例)
高級語言幾乎都可以讀取Excel數據文件,但要看有沒有第三方提供專業的API來讀取,若是沒有,就需要程序員自己去了解Excel數據文件的結構,編寫程序來讀取數據,工作量非常大。幸運的是, Apache為Java提供了開源包poi用以讀寫Excel文件,它能讀取每個單元格的數據和屬性。讓我們來看看用poi如何將Excel文件讀成結構化的數據。
先看一個很簡單的文件:第一行是列標題,第二行開始直到最後一行都是數據行。文件內銀兆容如下圖:
可以看出來,Python讀取Excel文件的代碼比較簡單,比Java前進了一大步。而且pandas封裝了不少結構化數據的處理函數,對於後續計算也比Java和VBA提供了較好的支持。如果是可讀入內存的小文件,它可以很簡單地處理。
可惜的是,pandas沒有針對大文件提供直接分批處理的方法,無論讀取還是運算仍然要自己寫,非常麻煩。可參考Python 如何處理大文件。
四、 esProc SPL
esProc是專業的數據處理工具,提供了各種讀取Excel文件的方法,其腳本語言SPL中封裝了豐富的結構化數據計算函數,可以完美地支持各種後續計算、數據導出及入庫等工作。
esProc讀取Excel文件的程序非常簡單,只要寫一行代碼就可以:
1、 簡單格式
=file("simple.xls").xlsimport@t()
選項@t表示第一行是列標題
2、 復雜表頭
=file("complex.xls"). xlsimport(;1,5).rename(#1:No,#2:ItemCode,#3:ItemName,
#4:Unit,#5:Quantity,#6:Price,#7:Sum)
參數1,5表示讀第1個sheet,從第5行開始讀(也可以指定結束行),讀數以後再用rename修改列名
3、 交叉表
=file("cross.xls").xlsimport@t(;1,2).rename(#1:Type).pivot@r(Type;Area,Amount)
pivot函數中以Type分組對表數據進行行列轉置,選項@r表示將列數據轉換為行數據,轉換後新的列名分別為「Area」、「Amount」。
從代碼上可以看出來,對於解析Excel文件,esProc SPL比Python pandas更為簡潔。事實上,SPL做後續處理計算比pandas有更大優勢,具體可參考桌面輕量級數據處理腳本。
而且,esProc還可以很方便地進行大文件數據的讀取和計算,它提供游標機制,允許數據分析師用類似處理小數據量的語法,直觀地處理較大的數據量,程序代碼和處理小文件一樣簡單,比如簡單格式的大數據量文件,用游標讀數的程序代碼是:
=file("big.xlsx").xlsimport@tc()
通過比較,我們可以看到,Python pandas和esProc SPL用於解析Excel文件的代碼都很簡練,而且也都具備豐富的結構化計算函數,可以實現日常工作中的數據處理。兩者相比,esProc SPL更為簡潔,並且還能方便地處理大文件。
⑵ excel算是半結構化數據嗎
不屬於。
資料庫才屬於結構化數據,而EXCEL是電子表格,是一種應用,而不是專門的數據存儲。
EXCEL的數據隨意性很大,雖然也能做成結構化形式,但我認為它不屬於結構化數據。