我对编程比较陌生,所以如果我没有提供足够的信息,我很抱歉。操作系统: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')?
答案 0 :(得分:0)
要在Python中使用unicode,你有两种可能性:要么使用Python 3,通常只是工作,要么在Python 2的字符串前面添加u
以使它们成为unicode:{{1另请参阅相关讨论here。
至于另一个问题:是的,这并不理想:Mac上的(错误)弹出窗口当前显示任何转到stdout的内容,其中包括打印消息。这些release notes的最后一个子弹显示了如何将弹出窗口完全静音(作为当前的解决方法)。
更新:这是一个带有Python 3 unicode的示例脚本(从Excel调用):
u'å'