1. 程式人生 > >關於python操作excel的程式碼及一些感悟

關於python操作excel的程式碼及一些感悟

首先我們來看看一些python操作excel的主流包:

xlrd-----excelread      xlwt------excelwrite     xlutils    openpyxl    xlsxwriter

我們挨個來說,故事開始.......

情景一:xlwt

小明接到老闆的命令,對,是命令,不是要求,要用python新建並構造一個excel,然後儲存。這讓小明十分的傷腦筋,為啥不直接新建一個excel……可老闆就是老闆,他的話就是聖旨!至少小明是這樣認為的,所以,他必須要硬著頭皮做這件事情。

這個就需要xlwt了,小明百度之後發現了這個包,於是關於xlwt的故事就這樣展開了。

用途:用來重新構建一個excel,從建表開始,然後往裡面寫入資料。

直接上程式碼:

import xlwt

wbk = xlwt.Workbook()

sheet = wbk.add_sheet('sheet 1')

#在0行的第一列寫入內容

sheet.write(0,1,'demo')

wbk.save('demo.xlsx')

還有很多關於這個包的操作,但是這篇文章的主要意義是幫助讀者在眾多python關於excel的包裡找到該用哪個包,也就是給大家基本的方向,所以,具體的操作不一一展開了。下面的包也按照這個格式來寫,大家如果感興趣,可以繼續往下進行~

情景二:xlrd

小明終於完成了老闆的任務,但是老闆的想法是你永遠猜不透的,現在,他又給小明出了一個難題,如何用python讀取剛才我儲存的excel檔案,並且展示出來呢?小明陷入了沉思,然後再次打開了百度。。。

用途:用來讀取已經存在的excel裡的資料

直接上程式碼:

import xlrd

rb= xlrd.open_workbook(r'demo.xlsx')

#讀取第一個表

sheet1=rb.sheet_by_index(0)#也可以根據表名獲取excel:sheet2 = workbook.sheet_by_name(sheet_name)

row=sheet1.row_values(3)#讀取第四行的內容

col=sheet1.col_values(1)#讀取第二列的內容

#獲取單元格資料

cell_A1 = table.cell_value(0,0)

好了到這裡,小明就已經能夠完成老闆的任務了~

情景三:xlutils    

你以為這樣就完了嗎?錯,老闆是不會滿足的~現在老闆提出了一個要求,我要讀取一個excel然後修改另存為一下,這樣就達到了不改動原來的excel的前提下,複製了原來的excel並作出了修改然後儲存了。

這次小明有了一些自己的想法,既然有讀取excel的操作,那麼完全可以利用剛才咱們學到的xlrd,至於修改就比較頭痛了,於是就開始百度了。

用途:複製一個excel然後修改另存為一下

直接上程式碼:

import xlrd

import xlutils

#讀取一個excel

rb= xlrd.open_workbook(r'demo.xlsx')

demo1=xlutils.copy.copy(rb)

#讀取第一個表的內容

ws = workbooknew.get_sheet(0)

#修改

ws.write(0, 0, 'change')

#儲存

domo1.save(r'demo_change.xlsx')#前面可以加路徑

情景四:openpyxl

老闆不想用xlutils來修改一個excel,於是小明又傷腦筋了,他又屈辱百度了哈哈~他發現了這麼一個神奇的包。

用途:同上而且,悄悄地告訴你,這個包還可以讀!不用藉助xlrd!噓~

直接上程式碼:

import openpyxl
excel1 = openpyxl.load_workbook(r'demo.xlsx')
#讀出第一個表
sheet=excel1.worksheets[0]
for i,row in enumerate(sheet.rows):
    row[2].value=1#每一行的第三列設為1
excel1.save('demo2.xlsx')

情景五:xlsxwriter

用途:xlsxwriter可以寫excel檔案並加上圖表

老闆想不到月薪幾k的小明竟然可以做到這麼多事情,於是,老闆出大招了!!~~畫圖!這可難不倒小明,不對,準確的說是百度是個好東西~!

直接上程式碼:

import xlsxwriter

def get_chart(series):

    chart = workbook.add_chart({'type': 'line'})

    for ses in series:

        name = ses["name"]

        values = ses["values"]

        chart.add_series({ 

            'name': name,

            'categories': 'A2:A10',

            'values':values

        })  

    chart.set_size({'width': 700, 'height': 350}) 

    return chart

好啦!關於python操作excel的程式碼的知識,小編就跟大家分享到這啦~~如果覺著小編寫的還行,記得關注一下小編呀,會有持續更新的各種知識~~