首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xlwt数据乱码

xlwt数据乱码
EN

Stack Overflow用户
提问于 2010-04-25 22:25:30
回答 1查看 913关注 0票数 0

我从DB中读取汉字数据,并通过xlwt将数据写入excel中。

代码如下:

代码语言:javascript
复制
ws0.write(0,0, unicode(cell, 'big5'))

在Windows下可以,但在Linux下删除时,excel中的数据乱码了。

你能帮我解决一下吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-25 23:13:33

如果你发布了你实际运行的代码,那将会有所帮助。假设ws0是一个Worksheet对象,正确的语法是ws0.write(row_index, column_index, unicode_text)

cell指的是什么,您是如何从哪个数据库中提取它的?

“excel中的数据乱码”是什么意思?您在Linux上使用什么来查看XLS文件的内容?你到底在屏幕上看到了什么?你能用其他软件在Linux上正确显示中文字符吗?

在Linux上,尝试在Python交互式提示符下键入以下内容:

代码语言:javascript
复制
>>> import xlwt
>>> b = xlwt.Workbook()
>>> s = b.add_sheet('zh')
>>> big5_text = '\xa7A\xa6n\xa1I'
>>> u_text = big5_text.decode('big5')
>>> s.write(0, 0, u_text)
>>> b.save('nihao.xls')

然后尝试使用OpenOffice Calc打开XLS文件...你看到什么?

更新

(1)“您运行的代码”必须超过1行;请显示它。

(2)请运行我给你的一小段代码,并报告结果。如果有效,我们可以专注于诸如如何从哪个数据库中获取什么数据等问题。请也回答这个问题

(3)请回答有关在Linux下显示中文的问题。

(4)认为看到“?”而不是中文(或其他什么)字符通常是由具有不适当编码(例如,‘unicode_text.encode('some_encoding', 'replace')’)的ascii(或具有相同意图的其他代码)的结果--可能前面有类似的de代码。xlwt执行严格来将unicode字符串存储在文件中;它根据需要使用'latin1‘或'utf_16le’进行编码,并对下一个参数使用‘unicode_text.encode()’,而不是'replace‘。如果Excel显示“?”,则很可能在将数据提供给xlwt之前数据已经被篡改。print repr(cell)跟你说了什么?

(5)如果您使用相同的输入数据和相同的Python脚本运行相同版本的xlwt和Python,则Linux的输出文件应该是与Windows的输出文件完全相同的。xlwt和Python版本之间的差异不太可能使文件不同。请使用二进制比较(例如,Windows“命令提示符”窗口中的fc /b ... )比较我给出的简短脚本产生的文件。请说明您在每个环境中使用的Python和xlwt版本。

(6)请考虑切换到the usual forum for xlwt questions ...这样,如果需要,你可以很容易地给我发送文件查看,当有新的帖子发布时,我会收到电子邮件,而不是必须每隔一段时间轮询网站……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2708530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档