使用python 对Excel表简单的增删改查

#用于副本操作
# 封装Excel类,用于操作excel文件,管理数据并CRUD
#Excel表需提前建好 表头也需提前在Excel表中写好
import xlrd
import xlwt
from xlutils.copy import copy
import os 


#TODO: 创建一个Excel表类
class Excel(object):
    def __init__(self, path):
        self.path = path #?绝对路径(带文件名)


#TODO: 读取Excel内全部数据 参数sname是sheet页名字 
    def read_all_data(self, sname): 
        workbook = xlrd.open_workbook(self.path)
        content = workbook.sheet_by_name(sname)
        ord_list=[]
        for rownum in range(content.nrows):
            ord_list.append(content.row_values(rownum))
        #返回的类型是一个list
        return ord_list


#TODO:  写入单行Excel表
    # 参数obj指的是新添加的按表头顺序排列的list类型数据,
    # sname指的是sheet页名字
    def write_row_data(self, obj, sname):
        wb = xlrd.open_workbook(self.path)
        sheet = wb.sheet_by_name(sname)
        nrows=sheet.nrows
        new_wb = copy(wb)  # 将原有的Excel,拷贝一个新的副本
        new_sheet = new_wb.get_sheet(0) # 重新在新的Excel中获取
        for i in range(len(obj)):
            new_sheet.write(nrows,i,obj[i])
        new_wb.save(self.path)
        return '存入成功!'


#TODO: 修改单行数据
#obj传的是字典对象,{'ID':'***','要修改的某一表头':'修改的内容'},sname指的是sheet名
    def write_cell_data(self, obj, sname):
        #3.1 获取当前指定 sheet
        #3.2 Copy
        #3.3 get_sheet(0)
        #3.4 循环查找当前 sheet 内容
        #3.4.1 对 obj的指定内容 要进行匹配 
        #3.4.1.1如果找到了 就修改 msg = ok
        #3.4.1.2没有找到 就得  msg = error
        #3.5 save
        #3.6 return msg
        wb = xlrd.open_workbook(self.path)
        sheet = wb.sheet_by_name(sname)
        col_val=sheet.col_values(0)#第一列的值
        row_val=sheet.row_values(0)
        keys=list(obj.keys())
        set_col=0
        set_nrows=0
        # set_nrows=col_val.index(int(obj[keys[0]]))
        for j in range(len(col_val)):            
            if col_val[j]==obj[keys[0]]:
                set_nrows=j
        for i in range(len(row_val)):
            if row_val[i]==keys[1]:
                set_col=i
        if set_col==0 or set_nrows==0:
            msg=False
            return msg
        else:
            new_wb = copy(wb)
            new_sheet = new_wb.get_sheet(0)
            new_sheet.write(set_nrows,set_col,obj[keys[1]])
            new_wb.save(self.path)
            msg=True
            return msg


#TODO: 清空Excel表的内容,参数sname是sheet页名
    def delete_all_data(self,sname):
        red_all=self.read_all_data(sname)
        new_ord=[]
        new_ord.append(red_all[0])
        wbt = xlwt.Workbook()
            # 生成一个sheet页
        sheet = wbt.add_sheet(sname)
        for m in range(len(new_ord)):
            for n in range(len(new_ord[m])):
                sheet.write(m, n, new_ord[m][n])
        wbt.save(self.path)


#TODO: 删除某一行的数据,参数obj指的是某行,sname是sheet页名       
    def delete_row_data(self,obj,sname):
        wb = xlrd.open_workbook(self.path)
        sheet = wb.sheet_by_name(sname)
        col_val=sheet.col_values(0)#第一列的值
        del_nrows=0
        for j in range(len(col_val)):
            if col_val[j]==int(obj):
                del_nrows=j
        if del_nrows==0:
            msg=False
            return msg
        else:
            red_all=self.read_all_data(sname)
            a=red_all.pop(del_nrows)
            wbt = xlwt.Workbook()
            # 生成一个sheet页
            sheet = wbt.add_sheet(sname)
            for m in range(len(red_all)):
                for n in range(len(red_all[m])):
                    sheet.write(m, n, red_all[m][n])
            wbt.save(self.path)
            msg=True
            return msg
            
        
if __name__ == "__main__":
    pass
    #path __file__
    #动态获取路径 获取当前py文件 所在的目录
    # d = os.path.dirname(__file__)
    #获取当前py文件执行时候的父级目录

 

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 很高兴能回答您的问题。使用Python代码实现对Excel增删改查可以使用Python中的openpyxl库。该库可以让你访问Excel文件中的每个单元格,从而实现增删改查的功能。使用该库,你可以读取、写入或删除Excel文件中的内容。 ### 回答2: 要使用PythonExcel进行增删改查,可以使用第三方库openpyxl。下面是一个简单的示例代码,演示了如何使用Python实现对Excel增删改查功能: 1. 添加数据: ```python from openpyxl import Workbook def add_data(filename, sheetname, data): # 打开Excel文件 wb = Workbook() sheet = wb.active if sheetname not in wb.sheetnames else wb[sheetname] # 将数据添加到最后一行 sheet.append(data) # 保存文件 wb.save(filename) ``` 2. 删除数据: ```python from openpyxl import load_workbook def delete_data(filename, sheetname, row): # 打开Excel文件 wb = load_workbook(filename) sheet = wb[sheetname] # 删除指定行 sheet.delete_rows(row) # 保存文件 wb.save(filename) ``` 3. 修改数据: ```python from openpyxl import load_workbook def update_data(filename, sheetname, row, col, new_value): # 打开Excel文件 wb = load_workbook(filename) sheet = wb[sheetname] # 更新单元格的值 sheet.cell(row=row, column=col).value = new_value # 保存文件 wb.save(filename) ``` 4. 查询数据: ```python from openpyxl import load_workbook def query_data(filename, sheetname, row, col): # 打开Excel文件 wb = load_workbook(filename) sheet = wb[sheetname] # 获取指定单元格的值 value = sheet.cell(row=row, column=col).value return value ``` 使用这些函数,可以很方便地对Excel进行增删改查操作。对于更复杂的操作,openpyxl库还提供了更多的功能和API,可以根据具体需求进行使用。 ### 回答3: 要使用PythonExcel进行增删改查,可以使用第三方库openpyxl来操作Excel文件。下面是一个示例代码: 1. 导入所需的库: ```python from openpyxl import Workbook, load_workbook ``` 2. 创建Excel文件并添加数据: ```python wb = Workbook() # 创建一个新的Excel文件 ws = wb.active # 获取活动工作 # 添加数据到工作 ws['A1'] = '姓名' ws['B1'] = '年龄' ws['A2'] = '张三' ws['B2'] = 20 # 保存文件 wb.save('example.xlsx') ``` 3. 读取Excel文件: ```python wb = load_workbook('example.xlsx') # 打开已存在的Excel文件 ws = wb.active # 获取活动工作 # 读取指定单元格的数据 name = ws['A2'].value age = ws['B2'].value # 输出结果 print('姓名:', name) print('年龄:', age) ``` 4. 修改Excel文件: ```python wb = load_workbook('example.xlsx') # 打开已存在的Excel文件 ws = wb.active # 获取活动工作 # 修改指定单元格的数据 ws['A2'] = '李四' # 保存文件 wb.save('example.xlsx') ``` 5. 删除Excel文件中的数据: ```python wb = load_workbook('example.xlsx') # 打开已存在的Excel文件 ws = wb.active # 获取活动工作 # 清空指定单元格的数据 ws['A2'].value = None # 保存文件 wb.save('example.xlsx') ``` 通过以上示例代码,我们可以实现对Excel增删改查操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值