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不指定時(shí)默認(rèn)返回全表數(shù)據(jù)
# self.df = pd.read_excel(file_path, sheet_name="Sheet1", usecols=['name', 'method'])
def get_excel(self):
"""
讀取表格數(shù)據(jù)存為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):
# 根據(jù)條件累加數(shù)據(jù)
self.df['id'][self.df['name'] == '測(cè)試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("===打印頭部數(shù)據(jù),僅查看數(shù)據(jù)示例時(shí)常用====")
print(self.df.head())
print("====打印列標(biāo)題===")
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()
- excel文件內(nèi)容
image.png
- 其他幾款操作excel對(duì)比,圖片來(lái)源這里:
image.png