|
需求:根据B列名单,统一分隔符。
思路:循环每一列拿到名单,然后再循环分隔符替换。
知识点:其中有个问题,循环替换分隔符的步骤中,新旧字符串的变量名要一致,因为这里是循环替换,如果不一致的话,就出现了循环替换都用老字符串替换,还是达不到最终效果。
先上书上代码:
- import xlrd#导入读取xls文件的库。
- from xlutils.copy import copy#导入工作簿复制函数。
- wb=xlrd.open_workbook('Chapter-4-11.xls')#读取工作簿。
- ws=wb.sheet_by_name('员工表')#读取工作表。
- nwb=copy(wb)#复制工作簿产生一个副本。
- nws=nwb.get_sheet('员工表')#读取副本中的工作表。
- row_num=0#初始化row_num变量为0。
- while row_num<ws.nrows-1:#当row_num变量小于已使用单元格区域行数时。
- row_num +=1#则对row_num变量累加1。
- roster=ws.cell_value(row_num, 1)#获取B列单元格的值。
- print(roster)
- for symbol in '、\|':#循环要被替换的符号。
- roster=roster.replace(symbol,'-')#将指定字符替换为'-'。
- print(roster)
- nws.write(row_num,2,roster)#将替换结果写入C列单元格。
- nwb.save('Chapter-4-101.xls')#保存副本工作簿。
复制代码 再上我写的for循环代码:
- import xlrd
- from xlutils.copy import copy
- wb = xlrd.open_workbook('Chapter-4-11.xls')
- ws = wb.sheet_by_index(0)
- nwb = copy(wb)
- nws = nwb.get_sheet('员工表')
- for row in range(1,ws.nrows):
- info = ws.cell_value(row,1)
- for i in '、\|':
- info = info.replace(i,'-')
- nws.write(row,2,info)
- nwb.save('2.xls')
复制代码
|
|