Python读取excel写入到RTF文件
2013-05-16 21:26
986 查看
用到的python包:
1.python读取excel的包,xlrd 下载地址https://pypi.python.org/pypi/xlrd
2.python将数据写入到RTF文件所用到的包PyRTF 下载地址:http://sourceforge.net/projects/pyrtf/
实际用的时候,将xlrd包和PyRTF包安装好后,在用xlrd读excle的时候没遇到什么问题,但是在用PyRTF包将读出的单元格的数据写入到rtf文件后,打开自动生成的文件后发现里面除了数字是正确的之外,其余全是乱码。主要问题为:
(1)写入时采用的字体的问题
因为PyRTF默认的是arial字体,我们将从excel读出的汉字如果用PyRTF默认的arial字体写入到文件后,就会出现乱码,解决方法,就是加入汉字字体,下面为一例子
(引自网络)
import sys
sys.path.append( '../' )
from PyRTF import *
doc = Document()
ss = doc.StyleSheet
# 在这里加入中文字体,\xcb\xce\xcc\xe5是“宋体”的中文内码
ss.Fonts.append(Font("\\'cb\\'ce\\'cc\\'e5", 'modern', 134, 6))
section = Section()
doc.Sections.append(section)
# 得到这个字体
tps = TextPS(font=getattr(ss.Fonts, "\\'cb\\'ce\\'cc\\'e5") ,bold=True)
# 设置颜色
sps = ShadingPS(background=ss.Colours.Pink)
text = Text('中国123'+'你好!@#', tps, sps)
p = Paragraph()
p.append(text)
section.append(p)
DR = Renderer()
out = file('bb.rtf','w')
DR.Write(doc, out)
out.close()
(2)字符编码的问题
我们用xlrd从excel表格中读出的汉字都是unicode编码格式(可以把读出的结果输出一下,可以看到每个汉字都是以utf-8编码显示的),如果我们不进行编码转换,直接写入到rtf文件的话就会出现乱码(我看了一下,自动生成的rtf文件都是ascII编码),所用对从excel中读出的汉字进行编码转换即可解决问题(将utf-8编码转为cp936编码)
1.python读取excel的包,xlrd 下载地址https://pypi.python.org/pypi/xlrd
2.python将数据写入到RTF文件所用到的包PyRTF 下载地址:http://sourceforge.net/projects/pyrtf/
实际用的时候,将xlrd包和PyRTF包安装好后,在用xlrd读excle的时候没遇到什么问题,但是在用PyRTF包将读出的单元格的数据写入到rtf文件后,打开自动生成的文件后发现里面除了数字是正确的之外,其余全是乱码。主要问题为:
(1)写入时采用的字体的问题
因为PyRTF默认的是arial字体,我们将从excel读出的汉字如果用PyRTF默认的arial字体写入到文件后,就会出现乱码,解决方法,就是加入汉字字体,下面为一例子
(引自网络)
import sys
sys.path.append( '../' )
from PyRTF import *
doc = Document()
ss = doc.StyleSheet
# 在这里加入中文字体,\xcb\xce\xcc\xe5是“宋体”的中文内码
ss.Fonts.append(Font("\\'cb\\'ce\\'cc\\'e5", 'modern', 134, 6))
section = Section()
doc.Sections.append(section)
# 得到这个字体
tps = TextPS(font=getattr(ss.Fonts, "\\'cb\\'ce\\'cc\\'e5") ,bold=True)
# 设置颜色
sps = ShadingPS(background=ss.Colours.Pink)
text = Text('中国123'+'你好!@#', tps, sps)
p = Paragraph()
p.append(text)
section.append(p)
DR = Renderer()
out = file('bb.rtf','w')
DR.Write(doc, out)
out.close()
(2)字符编码的问题
我们用xlrd从excel表格中读出的汉字都是unicode编码格式(可以把读出的结果输出一下,可以看到每个汉字都是以utf-8编码显示的),如果我们不进行编码转换,直接写入到rtf文件的话就会出现乱码(我看了一下,自动生成的rtf文件都是ascII编码),所用对从excel中读出的汉字进行编码转换即可解决问题(将utf-8编码转为cp936编码)
相关文章推荐
- python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。
- python实战之实现excel读取、统计、写入的示例讲解
- Python 读取EXCEL(XLS、CSV)写入txt文件
- 基于python实现在excel中读取与生成随机数写入excel中
- python读取txt数据写入excel
- python读取excel指定列数据并写入到新的excel
- Python读取txt内容写入xlsx格式的excel中
- Python读取和写入Excel文件[整]
- python中写入csv,excel显示、pandas读取csv文件的编码问题
- Python中xlrd、xlwt、xlutils模块,实现在Excel读取和写入数据
- 用Python读取Word文档并写入Excel(一)
- Python读取txt内容写入xls格式的excel中
- Python读取txt内容写入xls格式excel中的方法
- selenium+python关于登录的脚本代码,使用了读取excel以及向excel中写入测试结果的方法
- python使用xlwt读取文件写入Excel
- python实现读取excel写入mysql的小工具详解
- Python(11)萌新也能看懂之——用Python读取数据库,然后写入Excel里
- Python xlwd 读取excel xlwt 写入excel xlutils 修改excel
- Python处理Excel 写入,读取和追加
- python3 读取写入Excel