zoukankan      html  css  js  c++  java
  • openpyxl操作excel

    【转】

    openpyxl库可以读写xlsx格式的文件,对于xls旧格式的文件只能用xlrd读,xlwt写来完成了。

    python有很多模块都是用来操作excel的,比如xlrd,xlwt,pyExcelerator。用着很方便,但是问题是,只能支持到 excel2003。虽然一般的应用其实足够了,但是如果遇到了导出大量数据(超过65535条)的需求时,excel2003就不够用了。所以我就只好 去找一个能支持excel2007的模块,google了一下,发现了这个openpyxl。

    创建一个工作簿

    wb = workbook()

    加载已存在excel文件

    filePath = "/data/alic/demo.xlsx"
    wb = load_workbook(filename=filePath)

    选中sheet

    # 选择默认的sheet
    ws = wb.active
    
    # 通过索引加载sheet index从0开始
    ws = wb.worksheets[index]
    
    # 通过sheet名加载 感觉有问题,中文?
    ws = wb.get_sheet_by_name()
    # 这个没有问题
    ws = wb["name"]

    创建sheet

    #默认插在工作簿末尾
    ws = wb.create_sheet() 
    # or
    # 插入在工作簿的指定位置位置 index从0开始
    ws = wb.create_sheet(index)

    更改sheet的名字

    # 新建默认的话 sheet0 sheet1 ...
    ws.title = "hello"

    获取sheet的名称

    sheet_name = wb.get_sheet_names()
    print sheet_name
    # or
    for sheet in wb:
        print sheet.title

    单元格操作

    # 获取一个单元格的value
    value = ws['B2']
    # or
    value = ws.cell('B2')
    # or 非常推荐 遍历都很方便
    value = ws.cell(row=1,column=2)
    
    #获取多个单元格
    cells = ws['A1':'E4']
    
    #为一个单元格赋值
     ws['B2'] = "alic"
    # or
    ws.cell('B2') = "hello"
    # or 非常推荐 遍历都很方便
    ws.cell(row=1,column=2) = "value"
    
    # 遍历多个单元格
    for row in ws.iter_rows('A1:D2'):
          for cell in row: 
                print cell

    获取当前工作表的已有数据的对象

    # 所有行
    ws.rows
    
    # 所有列
    ws.columns

    获取当前工作表的数据长度与宽度

    row_length = len(ws.rows)
    cloumn_length = len(ws.columns)
    # 推荐 centOS上面的会报错
    row-length = len(list(ws.rows))
    cloumn_length = len(list(ws.rows))

    保存文件

    # 注意要是加载进来的路径与保存的路径一致文件将会被覆盖
    wb.save(path)
    
    # 也可以将文件作为模板保存  as_template默认为False
    wb.save('document_template.xltx', as_template=True)

    简单的样式处理

    # 文本对齐方式
    align = Alignment(horizontal='center', vertical='center')
    ws.cell(row=deng_lu_taskRow, column=index + 3).alignment = align
    
    # 字体大小
    font = Font(size=10)
    ws.cell(row=taskRow, column=column).font = font
  • 相关阅读:
    jQuery 基本选择器
    JavaScriptif while for switch流程控制 JS函数 内置对象
    JavaScrip基本语法
    数据库 存储引擎 表的操作 数值类型 时间类型 字符串类型 枚举集合 约束
    数据库基础知识 管理员 用户登录授权的操作
    粘包的产生原理 以及如何解决粘包问题
    socket TCP DPT 网络编程
    2018年年终总结
    Android技术分享
    No accelerator found
  • 原文地址:https://www.cnblogs.com/yrxns/p/7691727.html
Copyright © 2011-2022 走看看