【发布时间】:2012-01-05 11:26:17
【问题描述】:
我需要在 Excel 文件中插入位图图像(使用 xlwt 创建)。我尝试使用 insert_bimap() 方法插入,但它返回 IO 错误。
错误:
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\_webapp25.py", line 701, in __call__
handler.get(*groups)
File "C:\apps\test.py", line 44, in get
ws0.insert_bitmap('images/logo.gif', 2, 2)
File "C:\apps\xlwt\Worksheet.py", line 1034, in insert_bitmap
bmp = Bitmap.ImDataBmpRecord(filename)
File "C:\apps\xlwt\Bitmap.py", line 255, in __init__
self.width, self.height, self.size, data = _process_bitmap(filename)
File "C:\apps\xlwt\Bitmap.py", line 195, in _process_bitmap
fh = file(bitmap, "rb")
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 578, in __init__
raise IOError(errno.EACCES, 'file not accessible', filename)
IOError: [Errno 13] file not accessible: 'images/logo.gif'
代码:
class MainHandler(webapp.RequestHandler):
def get(self):
wb = Workbook()
ws0 = wb.add_sheet('Sheet 1')
ws0.write(0, 2, "chg wid: none")
ws0.insert_bitmap('images/logo.gif', 2, 2)
self.response.headers['Content-Type'] = 'application/ms-excel'
self.response.headers['Content-Transfer-Encoding'] = 'Binary'
self.response.headers['Content-disposition'] = 'attachment; filename="Sample.xls"'
wb.save(self.response.out)
如果有任何解决方法,请告诉我?
干杯! ,
NN
【问题讨论】:
-
您是否尝试过使用其他方法(例如直接打开)阅读“images/logo.gif”?权限被拒绝听起来不像 xlwt 问题,听起来您无权访问该文件。可能是
insert_bitmap试图打开文件进行写入,但这不是回溯rb所说的。 -
是的。我可以通过localhost:8081/images/logo.gif 访问它。
-
我的意思不是通过网络浏览器,我的意思是您的 MainHandler 例程可以访问该文件吗?无需创建工作簿,只需打开 logo.gif 文件并读取第一个字节。
标签: python google-app-engine xlwt