This patch allows pyExcelerator output to file-like oobjects like StringIO. Nice voe Webapplications. --md@hudora.de Index: pyExcelerator/CompoundDoc.py =================================================================== --- pyExcelerator/CompoundDoc.py (revision 1166) +++ pyExcelerator/CompoundDoc.py (revision 1171) @@ -546,7 +546,10 @@ self.__build_sat() self.__build_header() - f = file(filename, 'wb') + if hasattr(filename, 'write'): + f = filename + else: + f = file(filename, 'wb') f.write(self.header) f.write(self.packed_MSAT_1st) f.write(stream) @@ -554,7 +557,6 @@ f.write(self.packed_MSAT_2nd) f.write(self.packed_SAT) f.write(self.dir_stream) - f.close() if __name__ == '__main__':