美文网首页PythonPython思科DevNet
用Python批量修改Excel文件,只要这几个模块就能完成几天

用Python批量修改Excel文件,只要这几个模块就能完成几天

作者: 妄心xyx | 来源:发表于2018-12-11 19:41 被阅读114次

    介绍采用xlrd模块读取excel文件、采用xlwt模块写入excel文件的基本技巧。

    python已有几个模块可处理word文档、excel表格、以及ppt演示文稿。首先,汇总列出各模块对不同版本文件的处理能力:

    docx模块:可读取、写入.docx文档(不支持.doc文档!!!)
    xlrd模块:可读取.xls、.xlsx表格
    xlwt模块:可写入.xls表格(不可写入.xlsx文件!!!)
    pptx模块:可读取.pptx,可写入.ppt、.pptx(.ppt演示文稿,只能读取pptx模块自身输出的,对其他方式生成的不支持!!!)
    首先介绍xlrd、xlwt模块中如何描述excel表格。

    两个模块对excel表格的结构定义都非常直观,和平时使用excel表格的习惯基本一致。

    总体分为三个级别:工作簿——工作表——单元格。

    一个excel表格就是一个工作簿。
    一个工作簿可包含多个工作表,工作表可通过索引或名字访问。
    一个工作表包含多行、多列,行列交叉位置的基本单元就是单元格,内容都写入在单元格中。单元格可通过行、列索引访问。
    另外,可对单元格内容的格式进行设置,包括类型(日期等)、字体、颜色等。

    下面介绍xlrd模块读取excel表格。

    打开表格(工作簿):

    wb = xlrd.open_workbook('1.xls') #打开excel表格1.xls

    读取工作表:

    wb.sheets() #返回工作表(sheet)实例构成的list,可通过索引读取工作表

    或 ws = wb.sheet_by_name('xxx') #通过名字打开工作簿

    或 ws = wb.sheet_by_index(i) #通过编号(索引,从0开始)打开工作表

    读取单元格内容:

    注意xlrd读取excel工作簿的行、列索引都是从0开始。

    row = ws.row_values(i, ca, cb) #读取第i行中[ca, cb)列内容,返回list。注意不含第cb列

    或 col = ws.col_values(i, ra, rb) #读取第i列中[ra, rb)行内容,返回list。注意不含第rb行

    或 cell= ws.cell_value(r, c) #读取第i行第j列单元格内容

    单元格数据格式转换:

    cell = xlrd.xldate_as_datetime(cell,0) #对excel的日期格式单元格,xlrd读入的是浮点数,可通过xldate_as_datetime()转为datetime.datetime日期格式实例。

    或 cell = xlrd.xldate_as_tuple(cell,0) #转为日期tuple(year,month,day,hour,min,second),注意1≤cell≤60时,xldate_as_tuple()报错XLDateAmbiguous,也即1900-3-1之前的日期无法转为tuple。

    下面介绍xlwt模块写入excel表格。

    新建表格(工作簿):

    wb = xlwt.Workbook() #新建一个空的表格,用于写入

    新建工作表:

    ws = wb.add_sheet('Sheet1') #在表格中建立Sheet1工作表

    写入单元格内容:

    注意xlwt读取excel工作簿的行、列索引也是从0开始。

    ws.write(r, c, content, style) #在ws工作簿实例的第r行第c列单元格中写入内容content,并按照指定数据格式style(xlwt.XFStyle实例)写入(比如日期、字体等)

    设定单元格数据格式:

    mf = xlwt.XFStyle() #返回用于设定单元格格式的实例

    mf.num_format_str = 'yyyy/mm/dd' #将数字转换为日期格式

    mf.font = '宋体' #设置字体

    需在ws.write()时指定style实例才能生效。

    保存表格:

    wb.save('1.xls') #保存以上表格实例到1.xls

    注意只能写入.xls表格,不能写入.xlsx表格(写入后无法打开)。

    看完了吗,是不是很方便,几天的工作量一下子就可以搞定!

    相关文章

      网友评论

        本文标题:用Python批量修改Excel文件,只要这几个模块就能完成几天

        本文链接:https://www.haomeiwen.com/subject/wonehqtx.html