Python新手求助:如何合并Excel文件,代码修改总是失败怎么办?

我想根据每一列的值,合并一堆 excel,可是老出问题,各种问题,求大神指点啊。
#!/usr/bin/env python

#coding=utf-8

import os

import xlrd

import xlwt



file = xlwt.Workbook()

ta = file.add_sheet(‘sheet1’)

nr = 0

li = []
def isset(v):
try :
type (eval(v))
except :
return 0
else :
return 1


for fname in os.listdir(“F:/同行交易记录 /直接搜索结果 /”):
#print(fname)
#print(“F:/同行交易记录 /直接搜索结果 /”+fname)
lujing = “F:/同行交易记录 /直接搜索结果 /”+fname
data = xlrd.open_workbook(lujing)
table = data.sheet_by_index(0)
nrows = table.nrows
ncols = table.ncols
t = nrows
#print(table.row(0))
thead = table.row(0)
for x in range(len(thead)):
if str(thead[x]) == “text:‘日期’”:
date = x
if str(thead[x]) == “text:‘国内企业’”:
gnqy = x
if str(thead[x]) == “text:‘日期’”:
gwqy = x
for i in range(nrows):
print(i)
if (isset(“date”)):
ta.write(nr+i-nrows+t,0,table.row(i)[date].value)
if (isset(“gwqy”)):
ta.write(nr+i-nrows+t,1,table.row(i)[gwqy].value)
if (isset(“gnqy”)):
ta.write(nr+i-nrows+t,2,table.row(i)[gnqy].value)
#li.append(table.row(i)[9].value)
nr += t
print(nr)
#print(li)
file.save(‘F:/同行交易记录 /直接搜索结果 /res.xls’)
Python新手求助:如何合并Excel文件,代码修改总是失败怎么办?


10 回复

给你点人生经验,提问题的姿势应该是:
我想想要做什么,遇到了什么问题,我做了哪些努力仍然没解决。
你把一个严重依赖缩进的语言的大段代码,扭作一团扔在这里,还期待别人给你回答?


import pandas as pd
import os

def merge_excel_files(folder_path, output_file='merged.xlsx'):
    """
    合并指定文件夹下所有Excel文件
    """
    all_data = []
    
    # 遍历文件夹
    for file in os.listdir(folder_path):
        if file.endswith(('.xlsx', '.xls')):
            file_path = os.path.join(folder_path, file)
            
            # 读取Excel文件
            try:
                df = pd.read_excel(file_path)
                all_data.append(df)
                print(f"已读取: {file}")
            except Exception as e:
                print(f"读取失败 {file}: {e}")
    
    if not all_data:
        print("没有找到Excel文件")
        return
    
    # 合并数据
    merged_df = pd.concat(all_data, ignore_index=True)
    
    # 保存合并后的文件
    merged_df.to_excel(output_file, index=False)
    print(f"合并完成!保存为: {output_file}")
    print(f"总行数: {len(merged_df)}")

# 使用示例
if __name__ == "__main__":
    # 修改为你的Excel文件夹路径
    folder = "./excel_files"  # 这里放你的Excel文件
    merge_excel_files(folder)

核心要点:

  1. 确保安装了pandas:pip install pandas openpyxl
  2. 所有Excel文件结构要一致(列名相同)
  3. 文件路径用双引号包裹,Windows路径注意反斜杠转义

常见修改失败原因:

  • 文件路径错误:检查文件夹是否存在
  • 文件被其他程序占用:关闭Excel再运行
  • 编码问题:非英文路径可能导致问题

一句话建议:先检查文件路径和依赖包,再逐行调试。

没有的… V2EX 的编辑模式不会用… 没有出现缩进错误其实

可以用 gist 贴代码

不明白这种东西为什么不用 VBA 来做,即使 python 是个瑞士军刀,你现在需要的是个合适的锤子啊。。。

而且这个缩进,你还是先买一把游标卡尺再来吧。。。。

你自己是没有缩进错误,我们看着就没有缩进,这种代码我不知道谁会想多看一眼

还是贴报错信息吧,调试程序都是看报错,不是直接看代码

都说 V2EX 对新人不友好,看楼上回答我觉得已经很有好了。这种问题要是在 stackoverflow 上,直接被 down 到没脸见人

刚发的时候,发展换行都没了,编辑了下,发现缩进还是没有,想再~编辑下,发现没法编辑了,你们说我有啥办法……就会冷嘲热讽。嫌碍眼给我删了,也不用回了。

没啥 Python 经验就是你急于求成达到目的的理由吗,看看 xlrd xlwt 的文档自然就可以解决自己的问题。

回到顶部