DataFrame.to_excel() fails for boolean values.
sheet.append([int(val) if isinstance(val, np.int64) else val
--> 796                       for val in row])

seems to be the problem here (see below).

Maybe there should be something like (bool(val) if instance(val, np.bool_) ?

In [14]: df = DataFrame([(1,2,3),(4,5,6)],columns = ['a','b','c'])

In [16]: df['d'] = df.b>df.c
## In [18]: df.to_excel('test.xlsx')

AttributeError                            Traceback (most recent call last)
/home/arthur/<i

/usr/local/lib/python2.7/dist-packages/pandas-0.7.2.dev_12d511f-py2.7-linux-x86_64.egg/pandas/core/frame.pyc in to_excel(self, excel_writer, sheet_name, na_rep, cols, header, index, index_label)
   1032         self._helper_csvexcel(excel_writer, na_rep=na_rep, cols=cols,
   1033                               header=header, index=index,
-> 1034                               index_label=index_label)
   1035         if need_save:
   1036             excel_writer.save()

/usr/local/lib/python2.7/dist-packages/pandas-0.7.2.dev_12d511f-py2.7-linux-x86_64.egg/pandas/core/frame.pyc in _helper_csvexcel(self, writer, na_rep, cols, header, index, index_label)
    933                 row_fields.append(val)
    934 
--> 935             writer.writerow(row_fields)
    936 
    937     def to_csv(self, path_or_buf, sep=",", na_rep='', cols=None,

/usr/local/lib/python2.7/dist-packages/pandas-0.7.2.dev_12d511f-py2.7-linux-x86_64.egg/pandas/io/parsers.pyc in writerow(self, row, sheet_name)
    759                             'cur_sheet property')
    760         if self.use_xlsx:
--> 761             self._writerow_xlsx(row, sheet_name)
    762         else:
    763             self._writerow_xls(row, sheet_name)

/usr/local/lib/python2.7/dist-packages/pandas-0.7.2.dev_12d511f-py2.7-linux-x86_64.egg/pandas/io/parsers.pyc in _writerow_xlsx(self, row, sheet_name)
    794 
    795         sheet.append([int(val) if isinstance(val, np.int64) else val
--> 796                       for val in row])
    797         row_idx += 1
    798         self.sheets[sheet_name] = (sheet, row_idx)

/usr/local/lib/python2.7/dist-packages/openpyxl/writer/dump_worksheet.pyc in append(self, row)
    265             else:
    266                 dtype = 'string'
--> 267                 cell = self._string_builder.add(cell)
    268 
    269             attributes['t'] = STYLES[dtype]['type']

/usr/local/lib/python2.7/dist-packages/openpyxl/writer/strings.pyc in add(self, key)
     74     def add(self, key):
     75 
---> 76         key = key.strip()
     77         try:
     78             return self.dct[key]

AttributeError: 'numpy.bool_' object has no attribute 'strip'
