关于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的代码的知识,小编就跟大家分享到这啦~~如果觉着小编写的还行,记得关注一下小编呀,会有持续更新的各种知识~~

猜你喜欢

转载自blog.csdn.net/qq_41076797/article/details/84109965