使用openpyxl进行Excel操作 (基础)
操作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()