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
文件迭代有错吗?
关于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文件的主要内容,如果未能解决你的问题,请参考以下文章
python 利用三方的xlrd模块读取excel文件,处理合并单元格
Python处理EXCEL--pandas导入Excel文件