【办公类-19-02】20240122图书EXCEL插入列并删除空行

2024-01-23 14:12

本文主要是介绍【办公类-19-02】20240122图书EXCEL插入列并删除空行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作品展示

背景需求

上次23个班级班主任统计图书,写在EXCEL内

【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格-CSDN博客文章浏览阅读693次,点赞12次,收藏7次。【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格https://blog.csdn.net/reasonsummer/article/details/135473511提交后

每个班级的图书数量不一致,

需求

1、删除多余的空行

2、在序号和书名中间加入“年级”“班级”

素材准备:

全部代码

'''
把每个EXCEL前面增加一列班级、一列年级。共生成25份
删除多余行
作者:阿夏
时间:2024年1月22日'''
from openpyxl import Workbook
from openpyxl.styles import Alignment
from openpyxl.styles import Border, Side
import openpyxl
from docx import Document
import os
from docx.enum.text import WD_BREAK# 换页符号
from docx.enum.section import WD_SECTION
from docx.shared import Pt,Inches, Cm
#导入模块xlrd
import xlrd
import openpyxl
# import pandas as pd
import os
import time
import win32com.client as win32imagePath=r'C:\Users\jg2yXRZ\OneDrive\桌面\图书'print('------------第1步:读取原始文件-------------')# 新建一个”装N份word和PDF“的临时文件夹
imagePath1=imagePath+r'\\02插入班级年级的班级图书'
if not os.path.exists(imagePath1):  # 判断存放图片的文件夹是否存在os.makedirs(imagePath1)  # 若图片文件夹不存在就创建# 指定要读取的文件夹路径
folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\图书\01班主任提交的图书'
# 获取文件夹内所有文件名
file_names = os.listdir(folder_path)
# 拼接文件路径
doc_paths = [os.path.join(folder_path, file_name) for file_name in file_names]
print(doc_paths)
# ['C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\大1班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\大2班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\大3班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\大4班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\大5班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\大6班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\大7班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\小1班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\小2班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\小3班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌 
# 面\\图书\\所有图书\\小4班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\小5班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图 
# 书\\所有图书\\小6班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\小7班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所 
# 有图书\\托1班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\托2班班级图书汇总表.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\测试.xlsx', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\图书\\所有图书\\测试2.xlsx']print('------------第2步:每个EXCEL插入两列班级年级-------------')
# 遍历所有的EXCLE,添加班级列和年级列
for x  in range(len(doc_paths)):# 读取Excel文件workbook = openpyxl.load_workbook(r'{}'.format(doc_paths[x]))# 获取第一个工作表worksheet = workbook.worksheets[0]# 插入两列grade=['班级','年级']title=[]# 提取标题=班级cells=worksheet['A1']# 大1title1=cells.value[6:8]# 大班组title2=cells.value[6:7]+'班组'title.append(title1)title.append(title2)print(title)# 写入两列 班级和年级for i in range(len(grade)):# 在A列后插入一列B,并填写为"小1班"worksheet.insert_cols(2)# 在第2列前插入一列worksheet['B2']=grade[i]# 先插入班级,再插年级# 插入列的宽度worksheet.column_dimensions['B'].width = 10worksheet.column_dimensions['C'].width = 10# 获取行数row_count = worksheet.max_row    # 填写B列的单元格为"小1班"for row in range(3, row_count + 1):alignment = Alignment(horizontal='center')   worksheet.cell(row=row, column=2,value=title[i]).alignment = alignment# 获取活动工作表ws1 = workbook.active# 添加表格框线   假设你要设置的数据范围是第2行到第总行数+1行,第2列到第3列=第2列for col in ws1.iter_cols(min_row=3, max_row=row_count + 1, min_col=2, max_col=5):  # 注意:max_row应该是11,因为你要包括第10行for cell in col:cell.border = Border(left=Side(style='thin'),right=Side(style='thin'),top=Side(style='thin'),bottom=Side(style='thin'))# E列出版社和F列ISBN列宽变长         worksheet.column_dimensions['E'].width = 20worksheet.column_dimensions['F'].width = 20# 标签名字改成大1   ,不改就是“Sheet1”worksheet.title=title[0]# 删除“书名、出版社、ISDN”号三列都是空的行数,需要循环删除   # worksheet = workbook.activefor row in  worksheet.iter_rows(min_row=3, max_row= worksheet.max_row, min_col=4, max_col=6):    # 4=D# 因为删除一个空行后,行数上移,可能会跳过某些空行,所以最多循环350次,反复删除空行for y in range(365):            # 生成时间长# 检查D、E和F列的单元格是否都为空if all(cell.value is None for cell in row):# 如果都为空,删除整行worksheet.delete_rows(row[0].row)# 保存修改后的Excel文件workbook.save(imagePath+r'\\02插入班级年级的班级图书\新{}'.format(doc_paths[x][-15:]))workbook.close()print('------------第4步:将改过的新图书放在一张表里,保留原始格式-------------')# # 把整理里面的多个EXCEL工作表合并在一个工作表内N个工作簿、# print('---第3步:把23个工作簿合并1个工作簿的N个工作表-----')# a=r'C:\Users\jg2yXRZ\OneDrive\桌面\图书\各班填写后EXCEL.xlsx'
# print(a)# def merge_excel_files(path):
#     # create a new Excel workbook or open an existing one
#     excel = win32.gencache.EnsureDispatch('Excel.Application')
#     try:
#         wb = excel.Workbooks.Open(os.path.join(path, a))
#     except:
#         wb = excel.Workbooks.Add()#     # loop through all Excel files in the folder
#     for file in os.listdir(path):
#         print(file)
#         # 大5班班级图书汇总表.xlsx
#         if file.endswith('.xlsx'):            # open the Excel file打开EXCEL文件
#             ww=path+'\\'+file
#             print(ww)
#             wb_source = excel.Workbooks.Open(os.path.join(path, file))
#             print(wb_source)
#             # loop through all worksheets in the Excel file 所有文件内容
#             for sheet in wb_source.Worksheets:#                 # copy the worksheet to the destination workbook 复制表格内容到目标文件内,将其放到N工作表格后面
#                 sheet.Copy(After=wb.Sheets(wb.Sheets.Count))#             # close the source workbook 关闭来源文件
#             wb_source.Close()#     # save and close the destination workbook
#     wb.SaveAs(os.path.join(path, a))
#     wb.Close()
#     excel.Quit()#     # delete Sheet1 from 合并.xlsx
#     excel = win32.gencache.EnsureDispatch('Excel.Application')
#     wb = excel.Workbooks.Open(os.path.join(path, a))
#     ws = wb.Worksheets('Sheet1')
#     ws.Delete()
#     wb.Save()
#     wb.Close()
#     excel.Quit()# path = imagePath+r'\\02插入班级年级的班级图书'
# merge_excel_files(path)

终端演示:

最终成果

还没有研究出来如何将这么多工作表,合并在一张工作表的一个工作簿里,并保留原来的格式。

待续

这篇关于【办公类-19-02】20240122图书EXCEL插入列并删除空行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/636626

相关文章

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat

如何恢复回收站中已删除/清空的文件

回收站清空后如何恢复已删除的文件?是否可以恢复永久删除的文件?或者最糟糕的是,如果文件直接被删除怎么办?本文将向您展示清空回收站后恢复已删除数据的最佳方法。 回收站清空后如何恢复已删除的文件? “回收站清空后我还能恢复已删除的文件吗?” 答案是肯定的,但是在这种情况下您将需要一个  回收站恢复工具 来从回收站中检索文件: 错误/永久删除回收站或任何数字存储设备中的文件 直接删除的文件/

MySQL record 02 part

查看已建数据库的基本信息: show CREATE DATABASE mydb; 注意,是DATABASE 不是 DATABASEs, 命令成功执行后,回显的信息有: CREATE DATABASE mydb /*!40100 DEFAULT CHARACTER SET utf8mb3 / /!80016 DEFAULT ENCRYPTION=‘N’ / CREATE DATABASE myd

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼?项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时,效率和理解度都会大打折扣。别担心,只需3分钟,我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是老手,这一技巧都将是你的得力助手,让你在信息的海洋中畅游无阻。 方法一:使用同声传译王软件 同声传译王是一款专业的翻译软件,它支持多种语言翻译,可以excel

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

图书管理系统系统分享

分享一个图书管理系统,Java、SpringBoot、Vue和MySQL开发的图书馆管理系统 gitee项目地址:https://gitee.com/yuanmomoya/open-source-project/tree/master/books-management-system GitHub项目地址:https://github.com/yuanmomoya/open-source-pro