Python3 去除 Excel 空白
短信预约 -IT技能 免费直播动态提醒
【环境】
Windows 10 下,Python 3.6,使用第三方包 openpyxl。
【config.ini】
[config]
; Excel 文件名
XlFile=D:\test\test.xlsx
; 需处理的表单名
SheetName=Sheet1
【trim_cell_for_excel.py】
# encoding: utf-8
# author: walker
# date: 2018-09-26
# summary: 去除 Excel 单元格内字符串前后的空白
import os
import sys
import time
import openpyxl
from configparser import ConfigParser
StartTime = time.time()
cur_dir_fullpath = os.path.dirname(os.path.abspath(__file__))
XlFile = r''
SheetName = r''
def ReadConfig():
r""" 读取配置文件 """
global XlFile, SheetName
cfg = ConfigParser()
cfgFile = os.path.join(cur_dir_fullpath, r'config.ini')
if not os.path.exists(cfgFile):
input(cfgFile + ' not found')
sys.exit(-1)
with open(cfgFile, mode='rb') as f:
content = f.read()
if content.startswith(b'\xef\xbb\xbf'): # 去掉 utf8 bom 头
content = content[3:]
cfg.read_string(content.decode('utf8'))
if not cfg.sections():
input('Read config.ini failed...')
sys.exit(-1)
XlFile = cfg.get('config', 'XlFile').strip()
if not os.path.exists(XlFile):
print('Error: not exists %s' % XlFile)
sys.exit(-1)
print('XlFile: %s' % XlFile)
SheetName = cfg.get('config', 'SheetName').strip()
print('SheetName: %s' % SheetName)
print('Read config.ini successed!')
def Main():
print('Load %s ...' % XlFile)
wb = openpyxl.load_workbook(XlFile)
print('Load %s success!' % XlFile)
sheet = wb[SheetName]
for i in range(1, sheet.max_row + 1):
for j in range(1, sheet.max_column + 1):
rawVal = sheet.cell(i, j).value
if not isinstance(rawVal, str):
continue
sheet.cell(i, j).value = rawVal.strip()
print('Save %s ...' % XlFile)
wb.save(XlFile)
print('Save %s success!' % XlFile)
if __name__ == '__main__':
ReadConfig()
Main()
print('Time total: %.2fs' % (time.time() - StartTime))
print('Current time: %s' % time.strftime(
'%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
【相关阅读】
Working with Excel Files in Python
*** walker ***
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341