-
1 # 湘當有星
-
2 # Excel其實很簡單
VBA能操作Excel,Python也可以。
和VBA相比,Python的本領更大,能幹的事更強,當然,學習和付出的成本相對也更多。而且Python是一門單獨的程式語言,它面向的使用者也不僅僅是Excel使用者。
而VBA是Excel內建的功能,在Excel中操作和使用也更簡單和方便。不需再安裝第三方軟體。而且,網上用VBA操作Excel的程式碼和資源更多,找到稍加修改就能使用。VBA的本領可能沒Python強,但操作Excel卻更專業。
那麼,倒底應該學什麼?
舉個例:你只想開小車上班,只需C照就行了,但你會去花更多精力學A照來開小車嗎?
-
3 # 風色記憶
這要看你的需求了,如果僅僅是操作EXCEL的話,VBA應該說操作方便簡單,還內嵌不需要搭載什麼東西,能實現的功能也比較全。
但是如果不光是操作EXCEL的話,資料還要分享到其他地方,那肯定是Pythen要功能更強大。
至於VBA執行15000行卡死,我覺得不會,執行時間長是正常的,我做過幾萬行的表,沒說會卡死,只是假死,你可以活動游標,這樣就不會感覺卡死了。執行效率的話肯定沒有Pythen高。
關鍵還是自己選擇。
-
4 # 小小猿愛嘻嘻
其實兩者皆可,15000行資料來說,根本不算多,前面幾個回答都在推薦vba,這裡我重點介紹一下python是如何處理excel的,涉及xlrd/xlwt、openpyxl和pandas,感興趣的朋友可以嘗試一下:
基礎模組xlrd/xlwt這是python比較基礎的2個excel處理庫,相信許多朋友都聽說或使用過,xlrd專門用於讀取excel資料,xlwt專門用於寫入excel資料,常見的工作表、行列、單元格等基本操作,這2個庫都可以輕鬆搞定,資料量比較多、記憶體不夠的情況下,可以先讀取一部分資料,處理完成後,再讀取下一部分資料,這樣電腦就不容易卡死,效率也能更高一些:
簡單易用openpyxl這也是一個比較常用的python excel處理庫,和xlrd/xlwt一樣,openpyxl也可以輕鬆進行excel讀寫,支援按行按列讀取/刪除資料、單元格合併/拆分、插入圖表/圖片、呼叫函式/公式等基本操作,只不過僅相容xlsx/xlsm 2種格式,較早的xls讀寫會出錯,資料量比較多的情況下,也可先讀取一部分,處理一部分,迴圈遞迴,直到所有資料都處理完:
專業強大pandas說起pandas,許多朋友應該非常熟悉,尤其是做資料分析和處理的,作為python一個強大、著名的資料分析庫,pandas可以輕鬆處理日常各種資料格式,包括txt、csv、excel、json、mysql等,只需簡單幾行程式碼即可快速完成資料的匯入和匯出,同時內建的資料格式提供了非常方便的資料處理,資料量多的情況下,可以按塊進行讀取,每次讀取固定大小的塊,處理完成後,再讀取下一個塊,直到所有資料都處理完:
目前,就分享這3個python excel處理庫吧,簡單易用的就是xlrd/xlwt、openpyxl,專業強大,也比較高效的就是pandas,只不過都需要一定python基礎才行,vba也行,但比較侷限,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
-
5 # DoItYourself
首先,VBA與Python都是可以對Excel進行程式設計控制的。
在當下,學習Python相對於VBA,應用場景會更廣闊一些,很容易擴充套件到機器學習,影象處理,資料視覺化,時間序列,資料分析等應用當中。
對於Python處理Excel資料,不得不提典型的資料處理庫pandas.
其中的方法涉及到,多表拼接,合併,透視表,視覺化圖表,以及對大資料量的處理(千萬級)。
具體可參考以下案例:
①多表拼接實現1000萬條資料記錄彙總
https://www.toutiao.com/i6809389077578646028/
②Python處理時間序列常用方法彙總
https://www.toutiao.com/i6808906735865037319/
https://www.toutiao.com/i6813731029791015432/
④利用Python批次建立檔案/資料夾
https://www.toutiao.com/i6815322095312962055/
⑤Python 批次修改檔名
https://www.toutiao.com/i6815834857394930187/
⑥matplotlib-繪製精美的圖表
https://www.toutiao.com/i6816914689075708419/
一切順利,加油!
-
6 # 會做賬的碼農
作為一個從會計轉行到程式設計師的人,Python、VBA都用過,目前工作上用得最多的是C#。
我可以明確告訴你處理Excel資料的話,VBA是首先。Python雖然也可以透過各種包去控制Excel,但是功能待完善,使用起來沒有某些機構說的那麼驚豔的。
再說一下VBA效率的事情,其實是可以最佳化的,告訴你一個線索,用二維陣列可以極大的提升資料處理效率。
-
7 # Excel很簡單
如果你繼續學習是為了尋找下一份工作的話,應該去招聘網站找工作崗位的工作描述,看看哪個用的比較多,然後繼續學習。
如果你只是為了提升工作效率,給自己點技能樹的話,可以繼續往下看。
下面簡單介紹一下VBA、Python、VSTO和RPA的優缺點,以及他們最適合幹什麼。
VBA
VBA是Office系列自帶的宏語言,與Python、VSTO和RPA最大的優勢就是不需要單獨安裝IDE(整合開發環境),可以直接在Excel中編寫。
VBA比較適合一些不能自行在電腦上安裝軟體的老國企,因為不能自己裝軟體,所以沒得選。
VBA也比較適合非IT專業的人員入門程式設計,除了不需要單獨裝IDE以外,VBA在除錯的過程中是可以一邊除錯一邊修改程式碼的,雖然只能改斷點之後的程式碼,但是在日常學習中也已經比較方便了。藉助Excel工作簿,用VBA可以做到所見及所得,每一步操作都能呈現出來,對於不會的操作還可以錄製宏抄程式碼。稍微熟悉了之後,儘快學會用陣列,比直接操作Excel快很多,也更專業。
如果只是自己用的話,用Python開發會快很多,如果要分享給同事,把Python打包成exe也不是很難。或者應該一步到位用VSTO。
當然筆者也理解有的人學完VBA之後覺得夠用了,所以又把工作重心移回專業知識方面,沒有再深入學習其他技術。
VBA寫外掛夠用嗎?夠用了。適合嗎?不適合!
跟知乎某個回答一樣,寫外掛的人升職加薪去集團了,留下了一堆外掛,這些外掛有用嗎?真的有用。怎麼維護?VBA外掛還考慮維護?都搞不清楚遺留了多少檔案,好像整個部門各個崗位都有。如今要把各個崗位的資料上資料庫,這些VBA外掛每一個都躲不過去。
VBA第二大問題是安裝和引用稍微有點麻煩。安裝的時候需要在Excel中手動引入載入項,更新也需要自己去手寫更新檔案。引用別的功能基本是個殘廢,例如資料庫需要單獨安裝ODBC驅動。寫一個程式給別人用,最起碼的應該是減少使用成本。Excel載入項可能還好一點,步驟稍微多一些,也不是很複雜。Word載入項就比較糟心了,啟用的載入項必須放到預設路徑,或者調整預設路徑,否則每次開啟都得重新啟用。
Python
相比VBA,Python需要配置環境、裝IDE。對於非專業人士可能改個pip源都費勁。
Python的優勢是類庫比較豐富,語法很簡潔。例如資料處理中常用的Pandas庫,用dataframe資料結構處理資料就一個字——“爽”。用Pandas基本就可以告別For迴圈了。
Python適合做什麼?Python能做的有很多,工作中對資料的處理,都可以脫離Excel用Python來做。基本上除了Excel外掛之外,都可以用Python來處理。
如果你要給同事寫外掛,寫個Python程式是不大合適的,除去寫運算邏輯,可能還得畫窗體,最後打包成exe發給同事,然後運算完還要重新開啟Excel。這是一種比較割裂的使用體驗。
VSTO
VSTO是微軟做出來替代VBA的,這才是Excel外掛的正確開啟方式。有著宇宙最強IDE的Visual Studio的加持,開發體驗也很舒服。
VSTO就是為了做Office外掛而生的,包括自定義Excel模版也是它的強項,而且部分語法也與VBA比較類似,也可以參考錄製宏檔案。如果學完VBA的話,稍微加把勁兒把VSTO也學一學,還是很香的。
VSTO可以採用ClickOnce方式部署,更新很方便,連線資料庫的話直接nuget安裝包,使用體驗直接上了一個檔次。
VSTO比VBA的劣勢主要在三點:
1.對舊版本Office支援不好,不支援Office2007以前的版本。
2.需要.net framework環境。
3.網上的資源比較少,可能大多數人都止步於VBA了,畢竟又不是不能用。
寫在最後
VBA的優勢在於自帶IDE,可以直接使用;Python的優勢在於語法簡潔,適合資料處理;VSTO適合做Excel外掛,也就是所謂的二次開發
-
8 # 使用者我愛祖國
看用途選語言。根據實際需要。從紅樓夢中統計出主角名字出現次數,以柱狀圖顯示,把鳳姐,和王熙鳳都統計為王熙鳳。這就需要用python20行簡單程式碼搞定。如果,以A列排序,python也可以做,就不如用excel排序功能快捷。根據實際需要出發
-
9 # 馬哥python說
“現在已經2022年了,放棄VBA這個語言吧孩子!!“
下面介紹幾種常用的python操作Excel的庫。
一、用pandas庫操作Excel
pandas是python中做資料清洗、資料處理、操作excel檔案最基礎最常用的庫。
官方文件:https://www.pypandas.cn/docs/getting_started/
沒廢話,直接講程式碼!
首先,匯入pandas庫,並給pandas起個別名pd,後面呼叫直接用pd就行,少些幾個字母,不是什麼高階操作,完全就是因為。。。我懶!
import pandas as pd
然後,用pandas讀取excel檔案:
df = pd.read_excel("檔名.xlsx")
1.1 查詢資料
查詢前三行:
df.head(3)
查詢最後三行:
df.tail(3)
二、用openpyxl庫操作Excel
如果你不僅想用python處理Excel資料,還想改變Excel的樣式:
如字型大小、字型顏色、單元格里增加下拉框、單元格設定顏色、填充顏色,甚至在Excel裡畫圖!
openpyxl是個不錯的選擇!
給excel增加下拉框的demo程式碼:
wb = Workbook() # 初始化workbook
ws = wb.active # 初始化sheet頁
ws.title = "IMPORT_SHEET1" # 設定標題
# 定義下拉框(發票型別、未產生電費原因)
dv1 = DataValidation(type="list", formula1=""分割單+發票影印件,16%專票+普通發票,16%專票,普通發票"", allow_blank=True)
dv2 = DataValidation(type="list", formula1=""原因1,原因2,原因3,原因4,原因5"", allow_blank=True)
dv1.error = "輸入值不存在於下拉框選項!" # 錯誤提示
dv2.error = "輸入值不存在於下拉框選項!" # 錯誤提示
dv1.errorTitle = "非法輸入提示" # 提示框標題
dv2.errorTitle = "非法輸入提示" # 提示框標題
dv1.prompt = "Please select from the list" # 提示語
dv2.prompt = "Please select from the list" # 提示語
dv1.promptTitle = "List Selection"
dv2.promptTitle = "List Selection"
ws.add_data_validation(dv1) # 新增下拉框
ws.add_data_validation(dv2) # 新增下拉框
column_fapiao_type = ("S3:S100000") # 指定列範圍
column_reason_type = ("X3:X100000") # 指定列範圍
dv1.add(column_fapiao_type)
dv2.add(column_reason_type)
wb.save("test99.xlsx") # 儲存檔案
給excel插入視覺化圖形的demo程式碼:
wb = openpyxl.load_workbook("test.xlsx") # 開啟excel檔案
ws1 = wb.worksheets[0] # 選擇第一個sheet頁
# ws1.title = "折線圖" # 給sheet頁命名
max_row = ws1.max_row # 最大行數
max_col = ws1.max_column # 最大列數
# 開始畫圖
chart = LineChart() # 初始化一個折線圖
chart.title = chart_title # 折線圖示題
chart.style = 13 # 折線的style
chart.x_axis.title = "月份" # 折線圖的x軸名稱
chart.y_axis.title = "數量" # 折線圖的y軸名稱
x_values = Reference(ws1, min_row=2, max_row=max_row, min_col=1, max_col=1) # x軸數值範圍
data_area = Reference(ws1, min_row=1, max_row=max_row, min_col=2, max_col=2) # 數值區域
chart.add_data(data_area, titles_from_data=True) # 給圖形新增資料
chart.set_categories(x_values) # 設定x軸
ws1.add_chart(chart, "A10") # 把圖形新增到sheet頁指定單元格
print("折線圖已新增")
wb.save("test2.xlsx") # 儲存excel檔案
三、用xlwt、xlrd庫操作Excel
xlwt,用來寫入excel檔案。我猜它的full name是:excel writer
xlrd,用來讀取excel檔案。我猜它的full name是:excel reader
他們只能用於讀寫2003版本以前的excel檔案,即檔案字尾是xls的。
# 初始化excel檔案
xls = xlwt.Workbook() # 初始化workbook
sheet = xls.add_sheet("商鋪資訊") # 新增sheet頁
# 設定字型格式
Font0 = xlwt.Font()
Font0.name = "Times New Roman" # 字型名稱
Font0.colour_index = 2
Font0.bold = True # 加粗
style0 = xlwt.XFStyle()
# 在指定單元格新增資料
sheet.write(0, 0, "商鋪名稱", style0)
sheet.write(0, 1, "商鋪連結", style0)
sheet.write(0, 2, "商鋪資質(保證金)", style0)
sheet.write(0, 3, "掌櫃", style0)
sheet.write(0, 4, "掌櫃聯絡方式", style0)
sheet.write(0, 5, "發貨時間", style0)
# 儲存檔案
xls.save("test.xls")
四、其他python庫
另外,除了以上三種常用python庫,還有xlutils、xlwings等庫,不再贅述。
碼字累了,下次接著寫。。
-
10 # 不求甚解咋滴
沒用過vba,聽說效能不太好處理excel資料,我用Python,處理百萬行資料,沒有問題,但如果在計算邏輯比較複雜的話,可能執行起來稍微慢一旦,但絕對不卡。
回覆列表
推薦python
首先,我們先說說Excel 主要優點:
1)資料透視功能,一個數據透視表演變出10幾種報表,只需吹灰之力。易用性,一個新手,只要認真使用嚮導1-2小時就可以馬馬虎虎上路。
2)統計分析,其實包含在資料透視功能之中,但是非常獨特,常用的檢驗方式一鍵搞定。
3)圖表功能,這幾乎是Excel的獨門技能,其他程式只能望其項背而自殺。
4)高階篩選,這是Excel提供的高階查詢功能,而操作之簡單。
5)自動彙總功能,這個功能其他程式都有,但是Excel簡便靈活。
6)高階數學計算,卻只要一兩個函式輕鬆搞定。
其實,上面的內容有些廢話,但是為了文章的完整性還是寫上了,不過要想真正精通Excel,最高階就是用VBA語言自己寫宏,但是VBA作為一種程式語言也是十分難學,如果不寫VBA就需要一個一個的把資料錄入,然後一行行公式計算,最後再繪製圖表。不僅如此,由於Excel都是手動錄入,所以要反覆檢查有沒有錯誤,往往會耗費不少的時間。因此,Python就派上了用場。
批量出圖
除了整理資料,Python的批量出圖功能也很強大。
用Excel出圖需要不停的用滑鼠操作,而且非常容易出錯。
而用Python,只需要幾行程式碼輕鬆解決,特別是當工作重複度很高的時候,只要略微改動程式碼即可,大大的節省了時間,提高了完成效率。
資料視覺化
Python還可以自動生成資料可檢視。
利用Python強大的繪圖功能,資料匯入-分析-出結果
繪圖這個過程可以一次性完成,資料結果非常清晰直觀。