所以我一直在研究从文件中提取.xlsx文档的项目,试图将数据编译成一个工作表。
因为我已经管理了一个循环来提取文件,但现在我一直在努力阅读文档。
Python 2.7
如下所示,我在shell中的脚本和响应
#-------------- loop that pulls in files from folder--------------
import os
#create directory from which to pull the files
rootdir = 'C:\Users\username\Desktop\Mults'
for subdir, dir, files in os.walk(rootdir):
for file in files:
print os.path.join(subdir,file)
#----------------------merge work books-----------------------
import xlrd
import xlsxwriter
wb = xlsxwriter.workbook('merged.xls')
ws = workbook.add_worksheet()
for file in filelist:
r = xlrd.open_workbook(file)
head, tail = os.path.split(file)
count = 0
for sheet in r:
if sheet.number_of_rows()>0:
count += 1
for sheet in r:
if sheet.number_of_rosw()>0:
if count == 1:
sheet_name = tail
else:
sheet_name = "%s_%s" (tail, sheet.name)
new_sheet = wb.create_sheet(sheet_name)
new_sheet.write_reader(sheet)
new_sheet.close()
wb.close()
我运行程序时收到的错误
C:\Users\username\Desktop\Mults\doc1.xlsx
C:\Users\username\Desktop\Mults\doc2.xlsx
C:\Users\username\Desktop\Mults\doc3.xlsx
C:\Users\username\Desktop\Mults\doc4.xlsx
Traceback (most recent call last):
File "C:\Users\username\Desktop\Work\Python\excel practice\xlsx - loops files
- 09204.py", line 20, in <module>
wb = xlsxwriter.workbook('merged.xls')
TypeError: 'module' object is not callable
我知道我错过了一个连接数据的步骤。
我在其他脚本中使用过xlsxwriter,模块工作正常。由于某种原因,这里不会认出来。
另外,正如我所建议的那样,我尝试过xlwt,但是在将模块导入我的shell时遇到了麻烦,即使它是相应安装的。
任何提示都会有所帮助!
谢谢!
答案 0 :(得分:4)
W
WorkBook
wb = xlsxwriter.Workbook('merged.xls')
您还应该在Windows中的路径中使用/
斜杠或r
原始字符串:
r'C:\Users\username\Desktop\Mults'
'C:/Users/username/Desktop/Mults'
ws = workbook.add_worksheet()
也会导致错误,因为workbook
未在任何地方定义。
我认为你的意思是wb.add_worksheet()