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文件,代码修改总是失败怎么办?
给你点人生经验,提问题的姿势应该是:
我想想要做什么,遇到了什么问题,我做了哪些努力仍然没解决。
你把一个严重依赖缩进的语言的大段代码,扭作一团扔在这里,还期待别人给你回答?
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)
核心要点:
- 确保安装了pandas:
pip install pandas openpyxl - 所有Excel文件结构要一致(列名相同)
- 文件路径用双引号包裹,Windows路径注意反斜杠转义
常见修改失败原因:
- 文件路径错误:检查文件夹是否存在
- 文件被其他程序占用:关闭Excel再运行
- 编码问题:非英文路径可能导致问题
一句话建议:先检查文件路径和依赖包,再逐行调试。
没有的… V2EX 的编辑模式不会用… 没有出现缩进错误其实
可以用 gist 贴代码
不明白这种东西为什么不用 VBA 来做,即使 python 是个瑞士军刀,你现在需要的是个合适的锤子啊。。。
而且这个缩进,你还是先买一把游标卡尺再来吧。。。。
你自己是没有缩进错误,我们看着就没有缩进,这种代码我不知道谁会想多看一眼
还是贴报错信息吧,调试程序都是看报错,不是直接看代码
都说 V2EX 对新人不友好,看楼上回答我觉得已经很有好了。这种问题要是在 stackoverflow 上,直接被 down 到没脸见人
刚发的时候,发展换行都没了,编辑了下,发现缩进还是没有,想再~编辑下,发现没法编辑了,你们说我有啥办法……就会冷嘲热讽。嫌碍眼给我删了,也不用回了。
没啥 Python 经验就是你急于求成达到目的的理由吗,看看 xlrd xlwt 的文档自然就可以解决自己的问题。

