import pandas as pd
from ast import literal_eval
class OperateExcel():
def __init__(self, file_path):
self.file_path = file_path
self.df = pd.read_excel(file_path, sheet_name="Sheet1") # sheet_name不指定时默认返回全表数据
# self.df = pd.read_excel(file_path, sheet_name="Sheet1", usecols=['name', 'method'])
def get_excel(self):
"""
读取表格数据存为json
:return:
"""
data = []
for i in self.df.values:
params = ""
if i[3] == "post":
params = literal_eval(i[4])
app = {"id": i[0], "name": i[2], "method": i[3], "params": params}
data.append(app)
print(data)
def write_excel(self):
# 根据条件累加数据
self.df['id'][self.df['name'] == '测试2'] += 100
print(self.df.head())
self.df.to_excel('data3.xlsx', sheet_name='Sheet1', index=False, header=True)
# 新增一行
self.df.loc[10] = [5, 'Eric', 'male', 20, '']
# 新增一列
self.df['favorite'] = None
self.df.to_excel('data3.xlsx', sheet_name='Sheet1', index=False, header=True)
print(self.df.head())
def get_filter_excel(self):
# 查看所有的值
print(self.df.values)
# 查看第一行的值
print(self.df.values[0])
# 查看某一列所有的值
print(self.df['name'].values)
print("===打印头部数据,仅查看数据示例时常用====")
print(self.df.head())
print("====打印列标题===")
print(self.df.columns)
print("====打印行========")
print(self.df.index)
print("========打印指定列============")
print(self.df["name"])
if __name__ == "__main__":
file_path = 'data3.xlsx'
o_excel = OperateExcel(file_path)
o_excel.get_excel()
# o_excel.write_excel()
# o_excel.get_filter_excel()
![](https://img.haomeiwen.com/i2231755/4f54fc5955c9fc00.png)
image.png
- 其他几款操作excel对比,图片来源这里:
image.png
网友评论