如何在Python中利用Xlwings对Excel文件中的行和列进行删除

  介绍

本篇文章给大家分享的是有关如何在Python中利用Xlwings对Excel文件中的行和列进行删除,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一、需求:

某公司管理的多个资管计划每天生成表,业务人员需手工打开每个表,将某些行、列删除后方可打印上报。

现拟采用程序代替手工操作。

二,分析:

1时,应在原始文件的副本上操作,因此需拷贝文件夹内所有Excel至目标目录;

解答:使用shutil.copy ()

2,需打开Excel并删除指定的行和列,

解答:openpyxl不支持xls格式,xlwt无法删除行和列,最终选择Xlwings;

三、代码实现:

# !/usr/bin/env  Python   #,_ * _ 编码:utf-8  _ * _   ,   “““   ,   @Time ,,,:, 2019 - 12 - 27日17:16   @Author ,: Peanut_C   @FileName: excel_converter.py   ,   “““   ,   ,   import 操作系统   import  shutil   import  xlwings  as  xw   ,   时间=current_dir  os.getcwd ()   时间=src_dir  os.path.join (current_dir, & # 39; src_dir& # 39;)   时间=dst_dir  os.path.join (current_dir, & # 39; dst_dir& # 39;)   时间=exist_list  [& # 39; yyyy # 39;,, & # 39; xxxx # 39;],, #,要保留行一列的关键字   ,   ,   def  file_copy (source_dir, destination_dir):   ,,,os.chdir (source_dir)   ,,,for  file 拷贝os.listdir (source_dir):   ,,,,,,,shutil.copy(文件,,destination_dir)   ,,,print (& # 39; INFO ===祝辞祝辞祝辞,文件拷贝完成! & # 39;)   ,   ,   def  excel_modifier (wk_dir):   ,,,os.chdir (wk_dir)   ,,,for  file 拷贝os.listdir (wk_dir):   ,,,,,,,#,检查文件格式是否为xls   ,,,,,,,#,打印(类型(os.path.splitext(文件)[1]))   ,,,,,,,if  os.path.splitext(文件)[1],!=,& # 39;xls # 39;:   ,,,,,,,,,,,印刷(文件,,& # 39;===祝辞祝辞祝辞文件格式不正确,请检查! & # 39;)   ,,,,,,,其他的:   ,,,,,,,,,,,印刷(& # 39;开始处理===祝辞祝辞祝辞& # 39;,,文件)   ,,,,,,,,,,,#,创建应用,打开工作表   ,,,,,,,,,,,app =, xw.App(可见=False, add_book=False)   ,,,,,,,,,,,app.screen_updating =False   ,,,,,,,,,,,app.display_alerts =False   ,,,,,,,,,,,load_wb =, app.books.open(文件)   ,,,,,,,,,,,load_ws =load_wb.sheets.active   ,,,,,,,,,,,印刷(& # 39;\ t已打开工作表……& # 39;)   ,   ,,,,,,,,,,,#,获取总行数(列数固定不需要获取)   ,,,,,,,,,,,rows =load_ws.api.UsedRange.Rows.count   ,,,,,,,,,,,#,cols =load_ws.api.UsedRange.Columns.count   ,   ,,,,,,,,,,,#,获取需要处理的一列范围   ,,,,,,,,,,,a_range =, load_ws.range (& # 39; A1:一个# 39;+ str (rows-4)),, #,得到范围对象   ,   ,,,,,,,,,,,#,将范围中每行对象存放到列表中并倒序   ,,,,,,,,,,,印刷(& # 39;\ t开始获取标志列……& # 39;)   ,,,,,,,,,,,cell_list =, []   ,,,,,,,,,,,for  cell 拷贝a_range:   ,,,,,,,,,,,,,,,cell_list.append(细胞)   ,,,,,,,,,,,cell_list.reverse ()   ,,,,,,,,,,,#,打印(cell_list)   ,   ,,,,,,,,,,,#,将表头拆分,重新合,并为插入的值腾地方   ,,,,,,,,,,,印刷(& # 39;\ t开始调整合并单元格……& # 39;)   ,,,,,,,,,,,load_ws.range (& # 39; H3: J3& # 39;) .api.unmerge(),, #,拆分单元格   ,,,,,,,,,,,load_ws.range (& # 39; H3: i3 # 39;) .api.merge(),, #,合并单元格   ,,,,,,,,,,,load_ws.range (& # 39; J3& # 39;) .value =, & # 39; xxx # 39;,, #,插入值   ,   ,,,,,,,,,,,#,设定将一列每个值与要保留列表比对,比对不上则删除整行   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在Python中利用Xlwings对Excel文件中的行和列进行删除