經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

Excel是坐著電腦前百分之九十九的人都會不用的辦公軟件,東西少還好說,那樣存入表格也簡單,但是當你的數據達到幾萬幾十萬,幾百萬那就恐怖了,如果全靠手動,那麼你至少要連上一個月的班了,不能停息的那種!可見這時候就考慮到技術方面的能力了,很多東西都可以自動實現,如果手動的話,真不知道搞到何年何月了,耗時不說,關鍵沒有什麼意義!好了迴歸正題,手把手教你如何利用Python來操作Excel!

私信小編007即可獲取數十套PDF哦!

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

安裝好openpyxl後,通過import語句導入,再通過執行help方法,看看openpyxl庫中包含哪些東西,不需要認識,有個印象就行。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

裡面有一些單詞還是很熟悉的吧,比如cell單元格、chart圖表、styles樣式、workbook工作簿、worksheet工作表,除了用help方法,還可以使用dir方法來查看一個庫的所有成員,我把我們一會兒可能會用到的一些已經標紅了,大家在學習的過程中可以重點關注下。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

下面給出一些基本操作示例,大家可照著寫一下。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

再秀一下操作,一下子讀取指定行列的單元格,用到了iter_rows方法,表示在參數指定範圍內按行迭代,如果想要按列迭代的話可以使用iter_cols方法。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

上面的代碼展示瞭如何操作一個已有的Excel文件,下面再看一下新建一個Excel的例子。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

生成的Excel文件如下圖所示:

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

OK,是不是感覺操作Excel很簡單啊,那是因為你在這一段時間的Python學習中進步了,給自己一個贊!openpyxl官方文檔的地址是:http://openpyxl.readthedocs.io/en/stable/,打開主頁後,讓我們先膜拜一下Eric Gazoni和Charlie Clark大神,沒有你們倆,估計我還在一個字一個字的改Excel呢!

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

上面的知識點還是不少的,比如最後一句,Workbook是一個文檔所有其餘部分的容器。怪不得,一開始就要把Workbook創建好。Workbook被創建的時候至少包含一個worksheet,即工作表,可以通過Workbook.active()方法來定位到該工作表。acitve方法使用了 the _active_sheet_index屬性,該屬性值默認為0,當然你也可以設置為其他值。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

除了在創建工作表的時候設置名字,Python 3也支持任意時候通過修改屬性title來更改工作表的名字,我們先給個代碼,再作解釋。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

為什麼wb['Sheet']就能定位到工作表Sheet呢,這靠的是下圖紅框所圈出的這個方法。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

看到這兒,大家是不是有種特別眼熟的感覺!對啊,這些在List中全見過,為什麼在Workbook中也有,因為Workbook工作簿本身就是一個特殊的列表,列表的每一個元素是工作表,所以List的一些操作對於Workbook也適合。除了新建一個空的工作表,Python 3 還支持拷貝一個現有的工作表。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

需要注意的是copy_worksheet不能在工作簿之間複製工作表。

知道了怎麼創建一個工作簿,又學習瞭如何訪問一個工作表,接下來當然就是對單元格進行操作了。在學之前,我們先想想,既然工作簿可以理解由工作表組成的列表,那麼工作表是不是也可以認為是由單元格組成的列表呢?當然沒問題,通過help語句看一下就知道了。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

那麼該如何訪問具體的單元格呢,__getitem__方法寫的估計大家也看不懂,不管它,我們先打開一個Excel文件實際操作一下。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

如上圖,大寫的英文數字代表列,阿拉伯數字代表行,D3就表示第3行第4列的那個單元格,都說Python是最接近人類語言的編程語言,既然我們平時是這樣使用Excel的,不要懷疑,在Python中這樣用也可以。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

打開文件,看看效果,是不是很不錯啊。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

上面的代碼中還用到了一個cell方法,在此補充一下。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

也可以使用iter_rows或iter_cols方法分別以行優先或列優先來迭代指定範圍內的單元格。前面記得給出過一個例子,現在拿出來,大家再看一下。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

當然你也可以批量賦值,這個使用for/in語句就可以實現了,在這裡就先不講了,就當是給小夥伴的家庭作業哈!Python 3還為我們提供了類型和格式推斷的功能,什麼意思呢,看一下官方文檔給出的示例!

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

文件創建完畢後,大家要記得保存哈!openpyxl為我們提供了save方法(細心的小夥伴可以找找看,文章的前面部分已經用到了save方法),該方法怎麼使用呢,看一下文檔。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

需要注意的是,通過load_workbook打開的Workbook是隻讀的。

還有兩個我們平時操作Excel會用到的知識點,下面提一下。

Tips1:合併或取消合併單元格,用到了merge_cells和unmerge_cells兩個方法,我們先看一下文檔,再給出個小例子。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

從上面文檔中可以看出參數有兩種寫法,一種用到了range_string,一種是給start_row、end_column等賦值。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

Tips2:將許多列摺疊隱藏,這個功能也是很常用的,下面是openpyxl中給出的小例子。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

其中用到了group方法,咱們還是要看一下文檔。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

好多朋友聽了好久估計還不知道這個方法是幹啥的,正所謂“百聞不如一見”,大家看看上述代碼生成的group.xlsx文件就清楚了,如下圖。

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死

經理要我把五百萬條數據全部導入Excel!還好有Python!不然等死


分享到:


相關文章: