真知即所以为行,不行不足谓之知。

用python将Excel里的文本桩号转换为数字v1.0

Spread the love

Excel里面如果公式熟悉的话,起始一行公式再一拉就搞定了,python弄这个东西,数据太少了没优势,纯属练手,万一哪天Excel也拉得手痛呢?:P
import re

import openpyxl

def transfer(x):

"""把传入的字符串去掉空白并按+号断开成字符串列表,传回一个列表值"""

x=x.strip()

y=[]

lists=x.split("+")

for b in lists:

y.append(b)

return y #返回值是一个列表

def get_info():

"""获取需要转换的行列号信息"""

c=input("Enter the column number you want to transfer:")#输入需要转换的列

s=input("Enter the start row number you want to transfer:")#输入需要转换的起始行号

e=input("Enter the end row number you want to transfer:")#输入需要转换的结束行号

lists=[c,s,e]

return lists

L=get_info()

C=int(L[0])

S=int(L[1])

E=int(L[2])

wb=openpyxl.load_workbook('excel_test.xlsx') #打开一个工作簿文件作为对象给wb

sheet=wb["Sheet1"] #把工作簿对象里的工作表按名称取出来作为对象给sheet

hang=sheet.max_row #先获取最大的行数

for i in range(S,E+1):

if sheet.cell(row=i,column=C).value !=None:

lists=transfer(sheet.cell(row=i,column=C).value)#遍历列,把单元格种的字符串劈开存入lists列表中

A=re.sub("\D","",lists[0])#在字符串种找到非数字的字符用‘’代替

B=re.sub("\D","",lists[1])

ZH=float(A)*1000+float(B) #变为浮点数输出,实际是要写回去

print(ZH)

sheet.cell(row=i,column=C).value=ZH

else:

continue

wb.save('excel_test1.xlsx')#至此成功转换,另存为一个同目录下的excel文件,后续针对更多复杂的情况进行优化

Spread the love
 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:Living in the flow » 用python将Excel里的文本桩号转换为数字v1.0

分享到: 更多 (0)
avatar

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活