コード例 #1
0
    def __call__(self):
        response = self.request.RESPONSE
        filename = 'export_%s.csv' % self.context.getId()
        encoding = 'Windows-1252'
        csv = []

        # Header
        header = [field.encode('utf-8') for field
                  in export.get_header(self.context)]
        csv.append(','.join(header))

        # Data
        data = export.get_data(self.context)
        for row in data:
            # Change double quote to single
            row = [val.replace('"', "'") for val in row]

            # Put every value in double quote
            row = ['"%s"' % val for val in row]
            csv.append(','.join(row))

        result = '\n'.join(csv).decode('utf-8').encode(encoding, 'replace')

        response.setHeader('Content-Type',
                           'text/csv; charset=%s' % encoding)
        response.setHeader(
            'Content-disposition',
            'attachment; filename={0}'.format(filename))

        return result
コード例 #2
0
    def __call__(self, *args, **kwargs):
        response = self.request.RESPONSE

        header = export.get_header(self.context)
        data = export.get_data(self.context)
        excel_response = export.create_xlsx(header, data)

        filename = 'export_%s.xlsx' % self.context.getId()

        response.setHeader(
            'Content-Type',
            'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
        )
        response.setHeader(
            'Content-disposition',
            'attachment; filename={0}'.format(filename)
        )

        return excel_response.read()
コード例 #3
0
    def get_files(self, path_prefix=u"", recursive=True, toplevel=True):
        """
        Returns a list of two-value-tuples having the following values:
        - a relative path under which the file should show up in the zip
        - the data as either a file or a stream
        """
        header = get_header(self.context)
        data = get_data(self.context)
        xlsx = create_xlsx(header, data)

        filename = '{0}.xlsx'.format(self.context.getId())

        yield (u'{0}/{1}'.format(safe_unicode(path_prefix),
                                 safe_unicode(filename)), xlsx)

        # Recursively export folder contents.
        folder_contents = super(TicketBoxZipRepresentation, self).get_files(
            path_prefix, recursive, toplevel)

        for item in folder_contents:
            yield item