使用Python类将数据写入xls

时间:2018-12-09 03:22:31

标签: python database pandas psycopg2 xls

class XlsMaker(object):
    def __init__(self,path='report'):
        self.xls = pd.ExcelWriter('%s.xlsx' %path,engine='xlsxwriter')
        df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})

        # Create a Pandas Excel writer using XlsxWriter as the engine.
        writer = pd.ExcelWriter('%s.xlsx' %path,engine='xlsxwriter')
        df.to_excel(writer, sheet_name='Sheet1')

         # Close the Pandas Excel writer and output the Excel file.
        writer.save()

    def save(self):
        print('Generating your report...')
        self.xls.save()
        self.xls.close()
        print('Done!')



#I am invoking this class like below:-
rep1 = xlsMaker("Test") 
rep1.save()

已创建Xlsx文件,但未填充数据。     当我不使用类时,我会发现使用数据创建的xlsx。     我想知道上面的代码中是否有任何错误,因为我是python的初学者。

1 个答案:

答案 0 :(得分:0)

您正在包含pd.ExcelWriter('%s.xlsx' %path,engine='xlsxwriter')的两行上创建两个对象。其中一个是类属性,另一个是初始化函数的本地属性。您正在本地的初始化程序中调用.save()

删除writer =...行并将writer的所有实例替换为self.xls'