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 - 1

for 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)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python可以使用openpyxl库来遍历Excelsheet。以下是一个简单的示例代码: ```python import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('example.xlsx') # 获取所有sheet的名称 sheet_names = workbook.sheetnames # 遍历每个sheet for sheet_name in sheet_names: # 获取当前sheet sheet = workbook[sheet_name] # 遍历每一行 for row in sheet.iter_rows(): # 遍历每一列 for cell in row: # 输出单元格的值 print(cell.value) ``` 在上面的代码,我们首先使用openpyxl库打开了一个Excel文件。然后,我们使用workbook.sheetnames获取了所有sheet的名称,并使用for循环遍历了每个sheet。在每个sheet,我们使用sheet.iter_rows()遍历了每一行,并使用for循环遍历了每一列。最后,我们输出了每个单元格的值。 ### 回答2: Python是一种流行的编程语言,它具有强大的功能,可以简化许多任务,包括在Excel文件遍历多个工作表。在Python,使用xlrd和openpyxl两种库可以轻松地遍历Excel工作表。 使用xlrd库遍历Excel工作表 xlrd是一个用于读取Excel文件的库,它可以安装通过pip安装。要遍历Excel文件的所有工作表,可以遵循以下步骤: 1.导入xlrd库。 ``` import xlrd ``` 2.使用open_workbook()方法打开Excel文件。 ``` workbook = xlrd.open_workbook('file_name.xlsx') ``` 3.使用.sheet_names()方法获取工作表名称列表。 ``` sheet_names = workbook.sheet_names() ``` 4.使用for循环遍历所有工作表。 ``` for name in sheet_names: sheet = workbook.sheet_by_name(name) # 针对每个工作表的单元格进行操作 ``` 使用openpyxl库遍历Excel工作表 openpyxl是一个用于读写Excel文件的库,它也可以通过pip安装。要遍历Excel文件的所有工作表,可以遵循以下步骤: 1.导入openpyxl库。 ``` import openpyxl ``` 2.使用load_workbook()方法打开Excel文件。 ``` workbook = openpyxl.load_workbook('file_name.xlsx') ``` 3.使用.sheetnames属性获取工作表名称列表。 ``` sheet_names = workbook.sheetnames ``` 4.使用for循环遍历所有工作表。 ``` for name in sheet_names: sheet = workbook[name] # 针对每个工作表的单元格进行操作 ``` 无论是使用xlrd还是openpyxl库,遍历Excel工作表都是非常简单的。最重要的是,Python提供了强大的库和函数,使得编写遍历Excel文件的代码变得更加简单和高效。在使用这些库之前,我们必须学习如何安装和导入它们,这对于有效使用Python语言来遍历Excel文件非常重要。 ### 回答3: Python是一种很流行的编程语言,有很多功能强大的库可以使用。其,使用Python读取和处理Excel文件可以非常方便和高效,而且还支持遍历ExcelsheetPython,使用xlrd库可以方便的对Excel文件进行处理。首先,我们需要导入xlrd库: import xlrd 接着,我们需要打开Excel文件并获取工作簿,可以使用open_workbook()方法: workbook = xlrd.open_workbook('example.xlsx') 在获取到工作簿之后,我们可以通过sheet_names()方法获取所有的sheet名: sheet_names = workbook.sheet_names() 可以使用这个方法来检查Excel文件sheet的名字。如果想要读取Excel文件的内容数据,我们可以使用sheet_by_name()方法来获取指定的sheetsheet = workbook.sheet_by_name('Sheet1') 在获取到sheet之后,我们就可以遍历文件了。我们可以通过sheet.ncols和sheet.nrows方法分别获取列和行的数量,然后使用循环遍历每个单元格,比如: for i in range(sheet.nrows): for j in range(sheet.ncols): print(sheet.cell_value(i, j)) 上面的代码会依次读取每个单元格的值,并输出到控制台。 除了按顺序遍历每个单元格外,我们还可以使用row()方法和col()方法获取指定行或列的数据,在读取数据时可以根据实际需要进行选择。 综上所述,Python可以通过xlrd库方便地遍历Excel文件sheet读取和处理数据。通过实际应用,可以发现这种方式可以大幅提高Excel处理效率,并且能够减少人工操作的工作量。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值