阅读量:0
python中对于excel文件数据的读取和写入,主要有两种方法,一种是通过pandas库,一种是通过openpyxl库。在实际过程中,因为pandas库对单元格的定位和访问比较方便,openpyxl可以对单个单元格进行写入,而pandas库没有这样的功能。因而pandas库适合读取;openpyxl库适合写入。
pandas:读取、访问、写入
读取:
import pandas as pd data = pd.read_excel('shuju.xlsx',engine = 'openpyxl')
访问单元格:
value = data.iloc[row,col]
写入:
写入表格
# 创建一个DataFrame data = {'姓名': ['Bob', 'Alice'], '分数': [80, 99]} df = pd.DataFrame(data) # 将DataFrame写入Excel文件 df.to_excel('result.xlsx', index=False)
写入单元格
无,pandas库无法直接写入单元格。一般都是把数据存到数据结构中,然后df.to_excel整体将数据导入excel文件。
openpyxl:创建、读取、访问、写入
创建表格:
from openpyxl import Workbook wb = Workbook() ws = wb.active .... ws.save('pathtosave')
读取:
data = openpyxl.load_workbook(文件路径) sheet = data.worksheet[0] '''导入表,第一张表,索引为0'''
访问单元格:
cell_value = sheet.cell(row, col).value
写入:
写入表格
openpyxl无法直接写入整个表格,但是可以通过append来添加一行数据
# 写入数据 sheet['A1'] = '姓名' sheet['B1'] = '成绩' # 添加一行数据 sheet.append(['Alice', 99])
写入单元格
wb = Workbook() ws = wb.active ws.cell(row=1, column=1, value="姓名") ws.cell(row=1, column=2, value="分数") ws.save('result.xlsx')
注意:
1.pandas的行列索引从0开始,且不包括表头title;openpyxl索引从1开始,且包括表头。
2. 查找某一内容所在的行索引
data = pd.read_excel('shuju.xlsx',engine = 'openpyxl') row_index = data.loc[data['姓名'] == 'Alice'].index[0]