Запись в файл Excel с использованием xlwt + Google App Engine - Получение IOError: недопустимый режим: wb - PullRequest
0 голосов
/ 14 июля 2011

В моем приложении я пытаюсь записать данные в файл Excel с помощью API xlwt.Когда я запускаю приложение GAE, я получаю следующую ошибку.Пожалуйста, помогите мне исправить эту ошибку.

Traceback (most recent call last):
  File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 700, in __call__
    handler.get(*groups)
  File "C:\Users\stocklist\temp.py", line 39, in get
    wb.save('example.xls')
  File "C:\Users\stocklist\xlwt\Workbook.py", line 634, in save
    doc.save(filename, self.get_biff_data())
  File "C:\Users\stocklist\xlwt\CompoundDoc.py", line 507, in save
    f = open(file_name_or_filelike_obj, 'wb')
  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1427, in __init__
    raise IOError('invalid mode: %s' % mode)
IOError: invalid mode: wb

Исходный код:

class MainHandler(webapp.RequestHandler):
    def get(self):      

        font0 = xlwt.Font()
        font0.name = 'Times New Roman'
        font0.colour_index = 2
        font0.bold = True

        style0 = xlwt.XFStyle()
        style0.font = font0

        style1 = xlwt.XFStyle()
        style1.num_format_str = 'D-MMM-YY'

        wb = xlwt.Workbook()
        ws = wb.add_sheet('A Test Sheet')

        ws.write(0, 0, 'Test', style0)
        ws.write(1, 0, datetime.now(), style1)
        ws.write(2, 0, 1)
        ws.write(2, 1, 1)
        ws.write(2, 2, xlwt.Formula("A3+B3"))

        wb.save('example.xls')

1 Ответ

3 голосов
/ 14 июля 2011

Вы не можете записывать файлы в файловую систему на App Engine. Вместо этого сериализуйте его и сохраните в хранилище данных или в blobstore.

...