操作Excel ,使用第三方库,使用别人写好的代码,

这是使用 openpyxl 操作 2010 版之后的 xlsx 格式。

有些2003经典版是无法使用的,只能使用其他库 比如:xlrd,xlwt 。

其中 tablib 可以都支持,但是它的依赖比较大,使用起来复制,感兴趣的小伙伴可以自行百度 

一、 安装 openpyxl

pip install openpyxl

二、导入 openpyxl

import openpyxl 

1、打开 excel 文件获取工作簿 (文件内容见最下方 截图 )

# 有一个必填项,可填写 文件的路 径或者 文件对象
wb = openpyxl.load_workbook('D:\datas.xlsx')
print(wb)

2、获取表单(一个excel 文件可以有过个表单)

# 获取所有表单
sheet = wb.worksheets
print(sheet)
# 通过索引获取表单,索引从 0 开始 
sheet = wb.worksheets[0]
print(sheet)
# 通过表单名字获取表单.有个问题,之后使用 sheet 后无法 点 出提示
sheet = wb.get_sheet_by_name('Sheet1')
print(sheet)
# 简洁版 通过字典的形式. 问题和上面一样
sheet = wb['Sheet1']
print(sheet)

3、获取单元格数据

  1、获取一个单元格 。

        获取的数据就是一个普通的字符串或者一个数字。

# 获取某一个单元格的值.  cell() 第一个row传行数、第二个column传列数,
# 单元格以 1 开头,和python索引区分
cell = sheet.cell(1, 1).value
print(cell)  # url

 

  2、获取 一行/一列 单元格 。

        获取有多个数据,多行数据存储一般用,列表、字典、元组。

# 获取一行的数据
cell = sheet[1]
print(cell)   # 获取的一个元组,里面包含 单元格的对象  尖括号就是一个对象
#  输出数据  (<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>)

# 获取一列的数据
cell = sheet['A']
print(cell)

 

  3、获取 多行/多列 单元格 。

        得到的数据一般来说是嵌套的数据,比如嵌套的列表等

 

# 获取所有的行,最简单的方法
data = sheet.rows
data_list = list(data)[1:]  # 剔除第一条数据,第一条是标题
# 获取所有数据
data_list = list(sheet.rows)[1:]  # 剔除第一条数据,第一条是标题
new_data = []  # 新列表储存数据#
for row in data_list:
    # 每一行的数据存储起来 每循环一次清空
    row_data = []
    # 把 row 里面的数据依次提取出来
    for cell in row:
        # 把值添加到 row_data 列表中
        row_data.append(cell.value)
    # 每循环一次,往 new_data 添加一次数据
    new_data.append(row_data)
print(new_data)

 

4、 写操作,写完一定要保存,使用文件后要关闭  (使用写操作运行代码前一定要关闭文件,否则会报错

# 写 
sheet.cell(2, 1).value = '12306'


# 保存 提供保存的路径,不是之前的路径那就是另存为
wb.save(r'D:\datas.xlsx')
# 关闭
wb.close()

 

python使用openpyxl指定excel格式 File is not a zip file 使用openpyxl进行excel操作_数据存储