21番茄网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 21番茄网
查看: 807|回复: 0

用openpyxl按行取数的另外一种方法

[复制链接]

646

主题

799

帖子

2686

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2686
发表于 2021-1-25 16:06:16 | 显示全部楼层 |阅读模式
用openpyxl按行取数的另外一种方法
      这种方法的思路是,算出最多行数,然后以行数来循环,直接定位行来取数,这种方法的好处是可以定位到某个特定值所在的行编号。从而可以用ws.delete_rows(开始行, 删除的行数)来删除行。
import openpyxl,xlrd,os
from openpyxl import load_workbook

#---------取出所有excel的内容--------
path1='D:\\040 股票\\040 数据分析\\'
all_wb_name=os.listdir(path1)       #把文件夹内所有文件名称取出来
#print(all_wb_name)
for i in all_wb_name:
    path=path1+i
    A=load_workbook(path)
    biao=A.active
    zonghang=biao.max_row
    #print(biao.max_row)
    list_1=[]
    for row in range(2,zonghang):
        if len(biao[row][0].value)==5:
            list_1.append(row)
            continue
        if biao[row][0].value[0]=='6':
            biao[row][0].value='SH'+biao[row][0].value
            #print(biao[row][0].value)
        elif biao[row][0].value[0]=='0':
            biao[row][0].value='SZ'+biao[row][0].value
            #print(biao[row][0].value)
        elif biao[row][0].value[0]=='3':
            biao[row][0].value='SZ'+biao[row][0].value
            #print(biao[row][0].value)

    A.save(path)

另外一种方法,用iter_rows来取多行数据:
for row in ws.iter_rows(min_row=1, max_row=1, min_col=1, max_col=1, values_only=False):
    print(row)

详见:http://www.21fanqie.com/thread-308-1-1.html,按行取数





上一篇:写入excel前查重
下一篇:用openpyxl的iter_rows来读取多行数据时,修改数据的方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|21番茄网 ( 粤ICP备10099428号 ) 奇远富

GMT+8, 2024-4-27 02:21 , Processed in 0.414278 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表