本来想直接写入,但是我们的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中相关推荐

  1. python读取excel多个sheet页并合并成一页

    python读取excel多个sheet页并合并成一页 import xlrd import xlwtdata = xlrd.open_workbook("database.xlsx&quo ...

  2. EXCEL取当前SHEET页是第几个SHEET页

    需求: 一个Excel ,每一个 SHEET 页都有一个单元格,用来存放此 SHEET 页是第几个 SHEET 页. 场景: 设计了一个工作薄,有十几个工作表,每一个工作表,都有一个单元格,单元格的内 ...

  3. python 创建excel,操作excel,保存excel,修改excel,删除sheet页

    from openpyxl import Workbook #该包可进行excel相关的操作 import time import datetime import locale #支持中文日期loca ...

  4. python从数据库取数据保存为excel_python读取数据库表数据并写入excel

    #!/usr/bin/env python#-*- coding: utf-8 -*- '''@Time : 2020/1/1 18:08 @Author : Jason.Jia @contact: ...

  5. Excel——多个Sheet页合并成一个

    import xlrd import pandas as pd from pandas import DataFrame from openpyxl import load_workbookexcel ...

  6. fastexcel读取excel追加写入sheet页_Python写入和读取excel

    xlrd:用于读取 Excel 文件: xlwt:用于写入 Excel 文件: xlutils:用于操作 Excel 文件的实用工具,比如复制.分割.筛选等: xlwt这个模块只能输出.xls文件,不 ...

  7. excel动态获取sheet页单元格内容

    1.问题描述 如下图所示,名称列可能是动态赋值的,名称列的内容有对应新的sheet页,如名称为PJ1及其PJ1的sheet页,最终需要获取PJ1的sheet页的B1单元格的内容. 如下图所示,是要获取 ...

  8. 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 ...

  9. 多个字符合并成一个数组_一个excel多个sheet,需要合并为一个sheet

    一个excel文件中,有多个sheet,现在需要合并成一个文件. 需要按列合并成. 由于每个sheet中的列名称一样,合并后,需要重新命名. 每个sheet中的id是有一样的,读入文件的时候,就需要指 ...

最新文章

  1. 常见的函数式编程模型
  2. 基于PU-Learning的恶意URL检测——半监督学习的思路来进行正例和无标记样本学习...
  3. VC2005:无法执行添加/移除操作,因为代码元素是只读的....多个解决办法
  4. 《系统集成项目管理工程师》必背100个知识点-42项目成本管理的过程
  5. NYOJ 195 飞翔
  6. rm 给你一个反悔的机会
  7. 微型计算机内存主要,微型计算机的内存容量主要指 ( ) 的容量 (7.0分)
  8. seata 如何开启tcc事物_微服务分布式事务4种解决方案实战
  9. 在Vue中引入Bootstrap,Font-awesome
  10. postgres 把一个表的值转成另一个表的字段名_Postgres索引那些事
  11. python 设计模式 观察者_【python】设计模式之观察者模式
  12. 计算机组成原理实验单周期处理,计算机组成原理实验报告1-单周期.doc
  13. 超好用的数学公式编辑器MathType7.4下载安装及wps配置
  14. 小火狐进化_第34章 契约小火狐
  15. 易观国际邓中元:移动互联网竞合并存
  16. 统计学 |辛普森悖论
  17. mysql 修改校对规则_mysql的校对规则引起的问题分析
  18. python处理视频图像_图像/视频处理选项
  19. 修改QQ默认下载目录
  20. java 将map写入文件_如何将java中map数据写入txt文件中

热门文章

  1. teamredminer0.8.7原版内核,A卡效率最高的内核及参数设置
  2. 小米mix2s android,小米MIX 2S首发评测:这款安卓旗舰到底值不值得买?
  3. 如何去掉打印时左上角的STSM@EJL 1284.4@EJL
  4. Docker mysql 中文问题
  5. 【typeof的用法】
  6. Vue setup语法糖
  7. WEBAPP介绍及其iOS Web开发技巧总结
  8. 医药企业数字化转型的技术架构和演变策略
  9. 查看Mysql数据库连接IP
  10. CSS3 属性 transform 详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)