python操作excel的读、计算、写----xlrd、copy

import  xlrd
from xlutils.copy import copy
class ExcelUtil:
    def __init__(self,excel_path=None,index=None):
        if excel_path == None:
            excel_path = 'C:\\Users\\Administrator\\Desktop\\ooo.xls'
        if index == None:
            index = 0
        self.data = xlrd.open_workbook(excel_path)
        self.table = self.data.sheets()[index]
        self.read_value = self.data
        self.write_data = copy(self.data)
    #按照每行的List,添加到一个大的List里面
    def get_data(self):
        ddt_list = []
        rows = self.get_lines()
        if rows!=None:
            for i in range(rows):
                col = self.table.row_values(i)
                ddt_list.append(col)
            return ddt_list
        return None
    def get_lines(self):#获取excel的行数
        rows = self.table.nrows
        if rows>=1:
            return rows
        return None
    def get_col_value(self,row,col):#获取单元格的数据
        if self.get_lines()>row:
            data = self.table.cell(row,col).value
            return data
        return None
    def write_value(self,row,value):#写入数据
        self.write_data.get_sheet(0).write(row,2,value)  #2是要写入的列数,从0开始的
        self.write_data.save('C:\\Users\\Administrator\\Desktop\\ooo.xls')
if __name__ == '__main__':
    a = ExcelUtil()
    zonghanshu=a.get_lines()
    for i in range(1,zonghanshu):
        A = str(a.get_col_value(i,1))
        suanfa = str(a.get_col_value(i,0)).replace('操作货量',A) #读取excel算法,替换其中的参数。
        jieguo=round(eval(suanfa),2)#round 结果保留两位小数,eval 计算
        a.write_value(i,jieguo)  

 

转载于:https://www.cnblogs.com/Mr-Simple001/p/10487290.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值