首頁>Club>
5
回覆列表
  • 1 # 湘當有星

    推薦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強大的繪圖功能,資料匯入-分析-出結果

    繪圖這個過程可以一次性完成,資料結果非常清晰直觀。

  • 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,處理百萬行資料,沒有問題,但如果在計算邏輯比較複雜的話,可能執行起來稍微慢一旦,但絕對不卡。

  • 中秋節和大豐收的關聯?
  • 女朋友的爸媽打算要離婚了,我該怎麼做,才能讓她別這麼難過?