xlwt write excel sheet on the fly

前端 未结 3 1010
太阳男子
太阳男子 2021-01-17 11:07

I am used to creating a spreadsheet in the following way:

    wbk = xlwt.Workbook()
    earnings_tab = wbk.add_sheet(\'EARNINGS\')
    wbk.save(filepath)


        
相关标签:
3条回答
  • 2021-01-17 11:16

    To quote the documentation for the .save() method of xlwt:

    It can also be a stream object with a write method, such as a StringIO, in which case the data for the excel file is written to the stream.

    Modified example:

    import StringIO
    
    f = StringIO.StringIO() # create a file-like object 
    
    wbk = xlwt.Workbook()
    earnings_tab = wbk.add_sheet('EARNINGS')
    
    wbk.save(f) # write to stdout
    

    Some may suggest you use cStringIO instead of StringIO, but be forewarned that cStringIO when last I checked does not properly handle Unicode.

    It's perhaps also worth noting that StringIO is replaced in Python 3 by io.

    0 讨论(0)
  • 2021-01-17 11:19
    class QueryToExcel(object):
    def __init__(self, doc_name = 'doc_name'):
        #some set up stuff
        self.b_io = BytesIO()
        self.workbook = pd.ExcelWriter(self.b_io, engine='xlsxwriter')
        self.run() #fill in workbook with pandas dataframes
        self.workbook.save()
    
    def get_workbook(self):
        return self.b_io.getvalue()
    
    
    app = Flask(__name__)
    app.debug = True 
    @app.route('/pvh/', methods = ['GET'])
    def get_workbook(self):
        return self.b_io.getvalue()
    
    0 讨论(0)
  • 2021-01-17 11:36

    this is what i use in Django:

    response = HttpResponse(content_type='application/vnd.ms-excel')
    response['Content-Disposition'] = 'attachment; filename=file.xls'
    book.save(response)
    return response
    
    0 讨论(0)
提交回复
热议问题