从Excel表格中逐行提取行,并使用循环将每个提取行单独保存为新的Excel文件

问题描述 投票:0回答:1

我有一个只有一行的 Excel 标题文件 (header.xlsx),以及一个包含多行的 Excel 表格文件 (station.xlsx)。

目的是从(station.xlsx)中提取第一行,然后将提取的第一行附加到(header.xlsx),然后将它们保存为名为(1.xlsx)的新Excel文件。

之后,我想从(station.xlsx)中提取第二行,然后将提取的第二行附加到(header.xlsx),然后将它们另存为(2.xlsx)。

之后,我想从(station.xlsx)中提取第三行,然后将提取的第三行附加到(header.xlsx),然后将它们另存为(3.xlsx)...

循环将继续,直到从 (station.xlsx) 中提取 167 行,并分别追加并另存为新的 Excel 文件。

# import module
import os
import openpyxl 
# load excel with its path 
wrkbk1 = openpyxl.load_workbook(r"C:\Users\kxz237\Desktop\test\header.xlsx") 
sh1 = wrkbk1.active
wrkbk2 = openpyxl.load_workbook(r"C:\Users\kxz237\Desktop\test\stations.xlsx") 
sh2 = wrkbk2.active

# iterate through excel and display data 
for i in range(1, sh2.max_row+1): 
    output_file = r'C:\Users\kxz237\Desktop\test\i.xlsx'
    sh1.append(sh2.row_values(i))
    wrkbk1.save(output_file)

它显示“TabError:缩进中制表符和空格的使用不一致”

你能帮我修复Python代码吗?

附上我的原始 Excel 文件。在此处输入链接说明

python excel loops row
1个回答
0
投票

熊猫很容易:

import pandas as pd

header = pd.read_excel(r"test\header.xlsx") 
df = pd.read_excel(r"test\stations.xlsx", header=None) 
 
for i in df.index:
    df.loc[i,:].to_frame().T.to_excel(f'test/{i}.xlsx')
© www.soinside.com 2019 - 2024. All rights reserved.