O尚 2022-08-22 10:17 采纳率: 0%
浏览 48

Python处理xlsx,希望能够删除单元格内容前后的空白字符串

问题遇到的现象和发生背景

网上导出的数据CSV文件,转换成xlsx文件,经程序处理得到想要的结果。但是最终的输出的表格里,存在内容前后存在空白字符串

问题相关代码,请勿粘贴截图

import openpyxl as vb
from tkinter import filedialog
import os

# 设置文件对话框会显示的文件类型
my_filetypes = [('all files', '.*')]

# 请求选择文件
answer = filedialog.askopenfilename(initialdir=os.getcwd(),
                                    title="Please select a file:",
                                    filetypes=my_filetypes)

#if语句,如果未选择文件直接结束程序
if answer != '':
    print(r'您来了')
    print(r'请输入平台名称')
    台 = input()
    print(r'请输入店铺名称')
    店 = input()

    #删除指定行
    平台名称 = 台
    店铺名称 = 店
    簿 = vb.load_workbook(answer)
    表 = 簿.active
    表.delete_cols(idx=34, amount=5)
    表.delete_cols(idx=50, amount=2)
    表.delete_cols(idx=45, amount=4)
    表.delete_cols(idx=42, amount=1)
    表.delete_cols(idx=38, amount=2)
    表.delete_cols(idx=30, amount=2)

    # for循环,将T-Z列所有是***的单元格清空
    for row in 表['T:Z']:
        for i in row:
            if i.value == "***":
                i.value = ''
    #继续删除行
    表.delete_cols(idx=19, amount=1)
    表.delete_cols(idx=12, amount=6)
    表.delete_cols(idx=2, amount=1)

    #更换表头,添加名称
    表.insert_cols(2, 1)
    for i in 表['B']:
        i.value = 店铺名称
        表['B1'] = '店铺名称'

    # 更换表头,添加名称
    表.insert_cols(1, 1)
    for i in 表['A']:
        i.value = 平台名称
        表['A1'] = '平台名称'

    ####这个位置需要遍历全部单元格,将单元格内前后有的空白字符串删除

    #更改表头
    表['B1'] = '订单编号'
    表['D1'] = '商品名称'
    表['E1'] = '商品规格'
    表['G1'] = 'AID'
    表['H1'] = 'A编码'

    簿.save(answer)
    print('GameOver')

else:
    print('拜拜了您呐')

运行结果及报错内容

img

我的解答思路和尝试过的方法

replace函数不能用,因为后面日期和时间中间的空格不想删除。trip函数会因为单元格的值为int,不支持trip函数。

我想要达到的结果

在原有的代码我标注的位置,添加一段代码,能够实现遍历所有单元格,保留内容,但是删除单元格内前后空白的字符串

  • 写回答

2条回答 默认 最新

  • 爱喝水的小鲨鱼 Python领域优质创作者 2022-08-22 10:52
    关注

    你可以试试 strip()函数,

    • strip 去除字符串两端的空格
    • lstrip 去除字符串左边的空格
    • rstrip 去除字符串右边的空格

    具体修改的地方你自己改吧

    评论

报告相同问题?

问题事件

  • 创建了问题 8月22日

悬赏问题

  • ¥60 Python+pygame坦克大战游戏开发实验报告
  • ¥15 R语言regionNames()和demomap()无法选中中文地区的问题
  • ¥15 Open GL ES 的使用
  • ¥15 我如果只想表示节点的结构信息,使用GCN方法不进行训练可以吗
  • ¥15 QT6将音频采样数据转PCM
  • ¥15 本地安装org.Hs.eg.dby一直这样的图片报错如何解决?
  • ¥15 下面三个文件分别是OFDM波形的数据,我的思路公式和我写的成像算法代码,有没有人能帮我改一改,如何解决?
  • ¥15 Ubuntu打开gazebo模型调不出来,如何解决?
  • ¥100 有chang请一位会arm和dsp的朋友解读一个工程
  • ¥15 查询优化:A表100000行,B表2000 行,内存页大小只有20页,运行时3页,设计两个表等值连接的最简单的算法