zoukankan      html  css  js  c++  java
  • python 操作exls学习之路1-openpyxl库学习

         这篇要讲到的就是如何利用Python与openpyxl结合来处理xlsx表格数据。Python处理表格的库有很多,这里的openpyxl就是其中之一,但是它是处理excel2007/2010的格式,也就是xlsx系列,如果要处理以前的2003的表格(xls),那么则要用另外的库。如果只是要进行表格数据读取和进行简单的写数据的话,推荐使用openpyxl。下篇会介绍到另外一个操作表格文档的库,叫做xlsxwriter,这是一个专门写表格的库,在写数据和进行表格画图方面比较强大(不能读取和修改表格),因为这次分析数据最后需要进行绘图展示(openpyxl虽然也能作图,但是功能有限),所以也会用到这个库。

    openpyxl库学习

    1、wb = Workbook()

    2、获取sheet工作区间

    1)# 激活worksheet,得到一个worksheet,默认得到sheet1
            ws = wb.active

    2)#命名sisilast格式,插入到最后
            ws2 = wb.create_sheet("sisilast")

    3)#命名sisilast格式,插入到最开始的位置
            ws3 = wb.create_sheet("sisifrist",0)

    3、给指定单元格赋值

    1)直接写数据到指定的单元格中

     >>>ws['A1'] = 100

    2)使用openpyxl.worksheet.Worksheet.cell()方法操作某行某列的某个值:

    >>> ws.cell(row=6,column=5,value='kaixin')

    注意:

    1. 当worksheet在内存中被创建时,是没有包含cells的,cells是在首次访问时创建.
    2. 可以循环在内存中创建cells,这时不指定他们的值也会创建该cells些:(创建8x8cells)

    >>> for i in range(1,9):
                 for j in range(1,9):
                      ws.cell(row=i,column=j,value=i*j)

            3.也可以使用 openpyxl.worksheet.Worksheet.iter_rows() 方法:(需要指定行->行,截止列)

           4.也可以使用 openpyxl.worksheet.Worksheet.iter_cols() 方法:(需要指定列->列,截止行)

           5.如果你需要遍历所有文件的行或列,可以使用openpyxl.worksheet.Worksheet.rows() 属性:>>>tuple(ws.rows)

           or openpyxl.worksheet.Worksheet.columns() 属性:>>>tuple(ws.columns)

    4、# 附加一行,从第一列开始附加
            ws.append([1,2,3])

    5、#保存文件到指定位置
            wb.save("D:/test/test.xlsx")

    6、修改sheet名称

    创建的sheet的名称会自动创建,按照sheet,sheet1,sheet2自动增长,通过title属性可以修改其名称。

    >>> from openpyxl import Workbook

    >>> wb = Workbook()
    >>> ws = wb.create_sheet("haha")
    >>> ws.title = "heihei"
    >>> wb.save("D:/test/heihei.xlsx")

    7、查看workbook中的所有worksheets名称:openpyxl.workbook.Workbook.get_sheet_names()

    >>> print(wb.sheetnames)
    ['Sheet', 'heihei']

    8、直接访问单元格

    >>> value1 = ws['A3']

    9、openpyxl.load_workbook()已经存在的workbook:

    10、使用公式

  • 相关阅读:
    Java上等价类划分测试的实现
    软件测试の因果图法的测试运用
    display: block; 和 display: inline; 的区别
    CSS实现垂直居中
    CSS中实现水平居中
    HTTP头部信息
    HTTP PUT方法和POST方法的区别
    理解 ajax xhr jsonp
    深入理解JavaScript系列
    Angular 1.x 指令笔记
  • 原文地址:https://www.cnblogs.com/wensiyang0916/p/6117796.html
Copyright © 2011-2022 走看看