2014-09-29 80 views
1

因此,我一直致力于从文件中提取.xlsx文档以尝试将数据编译到一个工作表中。Python - 从文件中提取excel文档,需要帮助读取数据

因此,我已经管理了一个循环来拉文件,但现在我卡住试图阅读文件。

的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,但遇到麻烦导入模块到我的外壳,即使它相应地安装。

任何提示将有所帮助!

谢谢!

+0

不知道为什么你不断翻滚你的问题来回。你能解释一下吗? – 2014-09-29 20:46:29

回答

4

这是一个资本WWorkBook

wb = xlsxwriter.Workbook('merged.xls') 

你也应该使用路径/斜线或r原始字符串的窗口:

r'C:\Users\username\Desktop\Mults' 

'C:/Users/username/Desktop/Mults' 

ws = workbook.add_worksheet()也将导致一个错误workbook不随处定义。

我想你的意思wb.add_worksheet()

+0

谢谢!这工作。 – 2014-09-29 19:53:26

+0

不用担心,不用客气 – 2014-09-29 19:54:21

+0

你能说我正朝着正确的方向发展吗?我似乎无法阅读多个文档。尝试熊猫但收到相同的错误 – 2014-09-29 20:26:41