Unicode 错误 xlwings

Unicode error xlwings

我对编程还比较陌生,所以如果我没有提供足够的信息,我深表歉意。 OS:Mac OS X 10.10.3。从 Excel (2011, 14.4.5) 我打电话给 python xlwings (0.3.5).

objective是打印一个带有丹麦语字符的字符串。 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('å')

输出(不幸的是我没有发布图片的点):

Error

line 7, in print_text print('\xe5')

UnicodeEncodeError: 'ascii' codec can't encode character '\xe5' in position 0: ordinal not in range(128)

我也想知道为什么对话框显示'Error',而没有报错(例如print('a')?

要在 Python 中使用 unicode,您有两种可能性:使用 Python 3 通常情况下正常工作的地方,或者在我们的字符串前面添加一个 u Python 2 使它们成为 unicode:u'å',另请参阅相关讨论 here

至于另一个问题:是的,这并不理想:Mac 上的(错误)弹出窗口当前显示任何进入标准输出的内容,包括打印消息。这些 release notes 的最后一个项目符号展示了如何将弹出窗口完全静音(作为当前的解决方法)。

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

from xlwings import Workbook, Range
def print_text():
    wb = Workbook.caller()
    Range('A1').value = 'å'