python对excel表格的处理

首先已有一个excel表格,它的地址作为一个函数变量的输入

这个函数用来实现excel中的第3列进行筛选,若为‘SOIL’,往下搜索,找到‘SOIL’段的结束位置。对这些行的第九列找最大值,并存放在这些行中的最后一行,对第十列做同样的行为。遍历整个文本文件。

做了小个软件(含有此函数)用在工程的受力分析的一个小环节。(第一次处理excel文件 使用了两个库,感觉有点乱)

import xlrd #注意要用1.2.0版本,别的版本无法对excel进行写操作
from openpyxl import load_workbook

def process_excel(filename): #filename 为导出的excel文件
    workbook = xlrd.open_workbook(filename)
    sheet1_object = workbook.sheet_by_index(0)
    wb = load_workbook(filename)
    sheetnames = wb.sheetnames
    sheet = wb[sheetnames[0]]

    nrows = sheet1_object.nrows
    max8 = 0
    max9 = 0
    i = 0

    txt_renew = os.path.join(os.path.dirname(filename), 'renew.txt')

    while True:
        i = i + 1
        if i >= nrows: break
        cell_value= sheet1_object.cell_value(rowx=i, colx=2)
        if cell_value =='SOIL':
            max8 = 0
            max9 = 0
            start = i
            j = i
            while True:
                cell_value0 = sheet1_object.cell_value(rowx=j, colx=2)
                if cell_value0 != 'SOIL': break
                j = j + 1
            end = j
            print(end)
            i = end
 
            for j in range(start,end):  #第九列循环从start到end行找最大值,虽然是第九列,但是列编号为8
                v8 = sheet1_object.cell_value(rowx=j, colx=8)
                if abs(eval(v8))>abs(max8):
                    max8 = eval(v8)
            sheet.cell(end, 9, max8)  #在表格中修改第9列每段末尾的值,用max8替换他 用到了xlrd
            print(max8)

            for j in range(start,end):
                v9 = sheet1_object.cell_value(rowx=j, colx=9)
                if abs(eval(v9))>abs(max9):
                    max9 = eval(v9)
            #replace_word_in_line(filename1, end, word_position=9, new_word=str(max9))
            print(max9)
            sheet.cell(end, 10, max9) #在表格中修改第10列每段末尾的值,用max9替换他
           
    with open(txt_renew, 'w',encoding="utf-8") as file:   #整体输出
        file.writelines(lines)
    wb.save(filename)
    #txt_file = os.path.join(os.path.dirname(excel_file), 'renew.txt')

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值