首页 > 解决方案 > 如何从Excel中的单元格中删除某些字符

问题描述

我是 python 新手,我正在尝试运行一个程序,该程序在 Excel 上运行一个值列表,并从每个索引中删除“^”字符。例如,如果我有一列具有以下值(MS144573^、MS655072^、MS655282^、MS655177^、MS655073^),我希望将每个值替换为(MS144573、MS655072、MS655282、MS655177、MS655073)。

我正在使用 Openpyxl 模块。

我无法确定 Excel 中的单元格是字符串还是字符。有任何想法吗?

我尝试了以下代码:

import openpyxl
from openpyxl import workbook
path = "C:/Users/x/Desktop/x/x.xlsx"
wb = openpyxl.load_workbook(path)
sheet_read = wb.get_sheet_by_name("report")
sheet_write = wb.active


for i in range(1, 10):
 x = sheet_write.cell(row = i, column = 1).value
 y = len(x)
 if x[y] == '^':
    x = x[:y-1]

但我得到这个错误:

^ y = len(x) TypeError: 'NoneType' 类型的对象没有 len()`

标签: excelpython-3.xopenpyxl

解决方案


您应该使用 re 模块。

import re

value = re.sub('^', '', input)   # where input is the values that you want substituted

这将用空替换所有实例^,有效地删除它,并将其存储在值中。如果您有不止一个要做,您可以遍历列表并将它们简单地附加到一个新的清理值列表中。

编辑:如果您需要有关如何执行此操作的更多信息,请发表评论并更新代码以反映您的问题。


推荐阅读