用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,按行取数
|