无法使用python将多个.xls文件放入多张.xls文件中

时间:2018-02-01 15:38:41

标签: python pandas

我正在尝试找到一种方法将多个.xls文件放入一个单独的.xls文件中。 (所以1.xls将归入Sheet1等) 这是我的代码

    mypath = raw_input("Please enter the directory path for the input files: ")

from os import listdir
from os.path import isfile, join
textfiles = [ join(mypath,f) for f in listdir(mypath) if isfile(join(mypath,f)) and '.txt' in  f]

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False        

import xlwt
import xlrd

style = xlwt.XFStyle()
style.num_format_str = '#,###0.00'  

for textfile in textfiles:
    f = open(textfile, 'r+')
    row_list = []
    for row in f:
        row_list.append(row.split('\t'))
    column_list = zip(*row_list)
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('Sheet1')
    i = 0
    for column in column_list:
        for item in range(len(column)):
            value = column[item].strip()
            if is_number(value):
                worksheet.write(item, i, float(value), style=style)
            else:
                worksheet.write(item, i, value)
        i+=1
    workbook.save(textfile.replace('.txt', '.xls'))

import glob, os
import pandas as pd

writer = pd.ExcelWriter('C:\Users\xxx\Desktop\forpythonscript\minonna.xls')

i=1
for xlsfile in glob.glob(os.path.abspath('C:\Users\xxx\Desktop\forpythonscript\*.xls')):
    df = pd.read_excel(xlsfile)
    df.to_excel(writer, 'sheet%s' % i)
    i +=1

writer.save()       

这是运行到anaconda时的错误。

Traceback (most recent call last):

文件“C:\ Users \ xxx \ Desktop \ provaimport.py”,第51行,中     writer.save()   文件“C:\ Users \ xxx \ Anaconda2 \ lib \ site-packages \ pandas \ io \ excel.py”,第1423行,保存     return self.book.save(self.path)   文件“C:\ Users \ xxx \ Anaconda2 \ lib \ site-packages \ xlwt \ Workbook.py”,第710行,保存     doc.save(filename_or_stream,self.get_biff_data())   get_biff_data中的文件“C:\ Users \ xxx \ Anaconda2 \ lib \ site-packages \ xlwt \ Workbook.py”,第680行     self .__工作表[self .__ active_sheet] .selected = True IndexError:列表索引超出范围

1 个答案:

答案 0 :(得分:0)

我不能发表评论,但我认为这是两个可能问题的原因。

  1. 文件夹中保存的工作簿是否只有一张工作表?通常使用read_excel,您还可以选择要读取的选项卡名称。

  2. 您也尝试过设置以下内容

  3. df.to_excel(writer, 'sheet%s' % i, index=False)