python批处理excel文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python批处理excel文件相关的知识,希望对你有一定的参考价值。

python批处理多个excel文件,excel格式相同,需要得出所有excel文件中某一列的和,具体程序如下:文件都在D:/excel中
import os
import xlrd
files=os.listdir('D:\\excel')
for j in files:
j=j.strip('\n')
wb=xlrd.open_workbook(j)
table=wb.sheet_by_index(0)
numh=0.0
for i in range(1,table.nrows):
numh=table.cell(rowx=i,colx=1).value+numh
print numh
文件迭代有错吗?

参考技术A python代码,都没缩进,没法看。

关于xlrd,可以参考我写的:
【整理】Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
【记录】Python中安装可以读写excel的xls文件的xlutils模块(需依赖于xlrd和xlwt)
【记录】Python中安装xlrd模块
参考技术B 有个两个问题 :
1,numh=0.0需要放在for j in files:上,不然每次调用for,numh都会被重置为0.0
2,wb=xlrd.open_workbook(j)这个只是打开和你这个py文件同一个目录下的xls文件,比如你D:\\excel下有1.xls,2.xls文件,那你这句就只是打开py同一目录下的1.xls,2.xls而并非是D:\\excel下的

代码是可以用的,能实现功能,就是存在上面的两个问题
参考技术C import glob, os.path
import xlrd

COLNO = 1

def files(path, fnmatch):
for fname in glob.glob(os.path.join(path, fnmatch)):
yield fname

def suminxlsfile(xlsfile):
wb=xlrd.open_workbook(xlsfile)
table=wb.sheet_by_index(0)
return sum([table.cell(rowx=i,colx=COLNO).value
for i in xrange(1,table.nrows)])

sum(map(suminxlsfile,
files("D:\\excel", "*.xls")))本回答被提问者采纳

以上是关于python批处理excel文件的主要内容,如果未能解决你的问题,请参考以下文章

处理EXCEL文件

python如何对excel数据进行处理

python 利用三方的xlrd模块读取excel文件,处理合并单元格

Python处理EXCEL--pandas导入Excel文件

python/django-上传excel文件并用pandas处理

python excel处理