Unicode错误xlwings

时间:2015-04-26 20:06:36

标签: xlwings

我对编程比较陌生,所以如果我没有提供足够的信息,我很抱歉。操作系统:Mac OS X 10.10.3。来自Excel(2011,14.4.5)我正在调用python xlwings(0.3.5)。

目标是打印具有丹麦字符的字符串。 VBA代码:

Sub PrintText()
RunPython ("import test_file; test_file.print_text()")
End Sub

Python代码:

# -*- coding: utf-8 -*-
from xlwings import Workbook, Sheet, Range, Chart


def print_text():
    wb = Workbook.caller()  # Creates a connection with a new workbook
    print('å')

输出(遗憾的是,我没有发布图片的要点):

  

错误

     

第7行,在print_text打印(' \ xe5')

     

UnicodeEncodeError:' ascii'编解码器不能对字符' \ xe5'进行编码。在   位置0:序数不在范围内(128)

我也想知道为什么当没有错误时对话框会显示“错误”(例如打印(' a')?

1 个答案:

答案 0 :(得分:0)

要在Python中使用unicode,你有两种可能性:要么使用Python 3,通常只是工作,要么在Python 2的字符串前面添加u以使它们成为unicode:{{1另请参阅相关讨论here

至于另一个问题:是的,这并不理想:Mac上的(错误)弹出窗口当前显示任何转到stdout的内容,其中包括打印消息。这些release notes的最后一个子弹显示了如何将弹出窗口完全静音(作为当前的解决方法)。

更新:这是一个带有Python 3 unicode的示例脚本(从Excel调用):

u'å'