1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| 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()
|