Python库之OpenPyXL

 python
 

在python语言中,提供了几个三方库来对Excel进行操作,包括xlrd、xlwt、xlutils、openpyxl、xlsxwriter。本文主要讲解openpyxl库的一些基本使用方法。

安装

该库支持流行的lxml库集成使用,如果环境中安装了该库,openpyxl将会使用它,这在处理大文件的时候非常有用。

如果需要进行图片处理,例如把图片插入到Excel中,则需要先安装pillow库:

1
pip install pillow

方式一、使用pip进行安装

建议在没有系统包的Python virtualenv中执行此操作:

1
pip install openpyxl

方式二、使用checkout方式安装

如果需要安装特殊的版本,或者是已经修复的BUG还没有进行发布的时候,则就可以使用此种方式进行安装:

1
pip install -e hg + https://bitbucket.org/openpyxl/openpyxl@2.5#egg=openpyxl

使用

workbook
  1. 新建一个工作簿

    1
    2
    from openpyxl import Workbook
    wb = Workbook()
  2. 读取已经存在的工作簿

    1
    2
    from openpyxl import load_workbook
    wb=load_workbook(filename)
  3. 保存工作簿

    1
    wb.save(path)
sheet
  1. 获取全部sheet的名称

    1
    wb.get_sheet_names()
  2. 获取当前激活的sheet

    1
    wb.active
  3. 创建一个sheet,默认插入在工作簿最后。

    1
    ws = wb.create_sheet()
  4. 创建一个sheet,指定sheet位置,0表示插入到工作簿的第一个位置。

    1
    ws = wb.create_sheet(0)
  5. 通过名称获取sheet

    1
    2
    ws=wb[sheetname]
    ws=wb.get_sheet_by_name(sheetname)
  6. 循环获取所有sheet

    1
    2
    for sheet in wb:
    print(sheet.title)
修改sheet属性
  1. 修改sheet的名称

    每次新建sheet都会生成默认的名称,他们按照序列依次命名 (Sheet, Sheet1, Sheet2, …)。可以通过如下方式进行修改。

    1
    ws.title = "New Title"
  2. 修改sheet的tab标签栏颜色。

    标签栏的背景色默认为白色。可以通过如下方式修改为其他颜色。

    1
    ws.sheet_properties.tabColor = "1072BA"
row
  1. 逐行读取row

    1
         ws.iter_rows(range_string=None, row_offset=0, column_offset=0)
  2. 获取所有row

    1
    ws.rows()
  3. 增加一行

    1
    ws.append(iterable)
  4. 指定位置插入行

    1
    wb.insert_rows(self, idx, amount=1)
cel
  1. 获取指定名称单元格

    1
    ws.cell('A4')
  2. 获取指定位置单元格

    1
    ws.cell(row = 4, column = 2)
  3. 使用切片获取多个单元格

    1
    cell_range = ws['A1':'C2']
  4. 循环获取一行中的单元格

    1
    2
    for cel in row:
    print(cel)
  5. 指定角标获取单元格

    1
    c = row[1]
  6. 获取单元格内容

    1
    val = c.value
  7. 获取所有单元格

    1
    ws.columns()
  8. 在指定位置插入列

    1
    wb.insert_cols(self, idx, amount=1)
  9. 修改单元格内容

    1
    c.value = 'new value'