python遍历一个文件夹下所有excel,读取所有sheet页,然后写入另一个文件夹下对应模板的excel中
本来想直接写入,但是我们的excel报表太麻烦了,里面表头有多处要求合并的,用python去写太要命了,想了下,设置一堆空的excel模板,这样只需要把原文件的数据读出来就可以了,简单多了
#读取文件夹下所有的excel,并遍历所有的sheet页,然后把读取的数据增加跳转列后保存到新的文件夹对应文件中,
# https://blog.csdn.net/qq_38140292/article/details/121134465
import pandas as pd
import os
from openpyxl import Workbook,load_workbook
from openpyxl.styles import *dfs=pd.DataFrame()
oldPath = r'E:\aaa\2020aaa\excelOLD'
newPath = r'E:\aaa\2020aaa\excelNEW'# 先遍历旧的文件夹,读取数据
for root_dir,sub_dir,files in os.walk(oldPath):
for fileName in files:
if fileName.endswith(".xlsx"):
#构造绝对路径
filePath = os.path.join(root_dir, fileName)
print('filePath:' + filePath)#读取sheet页
for sheetName in pd.read_excel(filePath,sheet_name=None).keys():
print('sheet_name:' + sheetName)
df = pd.read_excel(filePath,sheet_name=sheetName)# 获取所有的数据,返回的是一个list
value = df.values
# print(value)
cols = ['=HYPERLINK("https://www.cnpython.com/qa/76641", ">>>")' for i in range(df.index.values.size)]
df2 = pd.DataFrame({"跳转": cols})
result = pd.concat([df, df2], axis=1)
print(result)newFilePath = os.path.join(newPath, fileName)
book = load_workbook(newFilePath)
# sheet = book.get_sheet_by_name(sheetName) #会有红色错误提示,不影响使用
sheet = book[sheetName]
row_num = sheet.max_row
print('row_num:' + str(row_num))# address = "A3" # 数据插入的起始行和列,比如源数据插入是第四行,那就是"A4“,但是我们迁移去掉了表头,所以需要减1,设置为"A3"
address = 'A' + str(row_num)
start_row, start_col = sheet[address].row - 1, sheet[address].column - 1for i, row in enumerate(result.values, 2):
for j, v in enumerate(row, 1):
sheet.cell(start_row + i, start_col + j).value = v
# thin 细框线,thick粗线
sheet.cell(start_row + i, start_col + j).border = Border(left=Side(style='thin'), bottom=Side(style='thin'),
right=Side(style='thin'), top=Side(style='thin'))book.save(newFilePath)
python遍历一个文件夹下所有excel,读取所有sheet页,然后写入另一个文件夹下对应模板的excel中相关推荐
- python读取excel多个sheet页并合并成一页
python读取excel多个sheet页并合并成一页 import xlrd import xlwtdata = xlrd.open_workbook("database.xlsx&quo ...
- EXCEL取当前SHEET页是第几个SHEET页
需求: 一个Excel ,每一个 SHEET 页都有一个单元格,用来存放此 SHEET 页是第几个 SHEET 页. 场景: 设计了一个工作薄,有十几个工作表,每一个工作表,都有一个单元格,单元格的内 ...
- python 创建excel,操作excel,保存excel,修改excel,删除sheet页
from openpyxl import Workbook #该包可进行excel相关的操作 import time import datetime import locale #支持中文日期loca ...
- python从数据库取数据保存为excel_python读取数据库表数据并写入excel
#!/usr/bin/env python#-*- coding: utf-8 -*- '''@Time : 2020/1/1 18:08 @Author : Jason.Jia @contact: ...
- Excel——多个Sheet页合并成一个
import xlrd import pandas as pd from pandas import DataFrame from openpyxl import load_workbookexcel ...
- fastexcel读取excel追加写入sheet页_Python写入和读取excel
xlrd:用于读取 Excel 文件: xlwt:用于写入 Excel 文件: xlutils:用于操作 Excel 文件的实用工具,比如复制.分割.筛选等: xlwt这个模块只能输出.xls文件,不 ...
- excel动态获取sheet页单元格内容
1.问题描述 如下图所示,名称列可能是动态赋值的,名称列的内容有对应新的sheet页,如名称为PJ1及其PJ1的sheet页,最终需要获取PJ1的sheet页的B1单元格的内容. 如下图所示,是要获取 ...
- java excel 多sheet页_java导入excel操作多sheet页上传
依赖包 cn.afterturn easypoi-base 3.0.1 cn.afterturn easypoi-web 3.0.1 cn.afterturn easypoi-annotation 3 ...
- 多个字符合并成一个数组_一个excel多个sheet,需要合并为一个sheet
一个excel文件中,有多个sheet,现在需要合并成一个文件. 需要按列合并成. 由于每个sheet中的列名称一样,合并后,需要重新命名. 每个sheet中的id是有一样的,读入文件的时候,就需要指 ...
最新文章
- 常见的函数式编程模型
- 基于PU-Learning的恶意URL检测——半监督学习的思路来进行正例和无标记样本学习...
- VC2005:无法执行添加/移除操作,因为代码元素是只读的....多个解决办法
- 《系统集成项目管理工程师》必背100个知识点-42项目成本管理的过程
- NYOJ 195 飞翔
- rm 给你一个反悔的机会
- 微型计算机内存主要,微型计算机的内存容量主要指 ( ) 的容量 (7.0分)
- seata 如何开启tcc事物_微服务分布式事务4种解决方案实战
- 在Vue中引入Bootstrap,Font-awesome
- postgres 把一个表的值转成另一个表的字段名_Postgres索引那些事
- python 设计模式 观察者_【python】设计模式之观察者模式
- 计算机组成原理实验单周期处理,计算机组成原理实验报告1-单周期.doc
- 超好用的数学公式编辑器MathType7.4下载安装及wps配置
- 小火狐进化_第34章 契约小火狐
- 易观国际邓中元:移动互联网竞合并存
- 统计学 |辛普森悖论
- mysql 修改校对规则_mysql的校对规则引起的问题分析
- python处理视频图像_图像/视频处理选项
- 修改QQ默认下载目录
- java 将map写入文件_如何将java中map数据写入txt文件中
热门文章
- teamredminer0.8.7原版内核,A卡效率最高的内核及参数设置
- 小米mix2s android,小米MIX 2S首发评测:这款安卓旗舰到底值不值得买?
- 如何去掉打印时左上角的STSM@EJL 1284.4@EJL
- Docker mysql 中文问题
- 【typeof的用法】
- Vue setup语法糖
- WEBAPP介绍及其iOS Web开发技巧总结
- 医药企业数字化转型的技术架构和演变策略
- 查看Mysql数据库连接IP
- CSS3 属性 transform 详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)