pythonxlwt模块详解.docx
- 文档编号:10428353
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:27
- 大小:21.38KB
pythonxlwt模块详解.docx
《pythonxlwt模块详解.docx》由会员分享,可在线阅读,更多相关《pythonxlwt模块详解.docx(27页珍藏版)》请在冰豆网上搜索。
pythonxlwt模块详解
python模块介绍-xlwt创建xls文件(excel)
2013-06-24磁针石
转自:
31.1xlwt–实例
31.1.1创建简单的excel文件
下面例子,创建一个名为mini.xls的文件,它有一个空sheet:
'xlwtwashere'。
fromxlwtimport*
w=Workbook()
ws=w.add_sheet('xlwtwashere')
w.save('mini.xls')
Workbook类初始化时有encoding和style_compression参数。
encoding,设置字符编码,一般要这样设置:
w=Workbook(encoding='utf-8'),就可以在excel中输出中文了。
默认是ascii。
当然要记得在文件头部添加:
#!
/usr/bin/envpython
#-*-coding:
utf-8-*-
style_compression表示是否压缩,不常用。
Workbook还有一些属性:
Owner设置文档所有者。
country_code:
国家码
wnd_protect:
窗口保护
obj_protect:
对象保护
Protect:
保护
backup_on_save:
保存时备份
Hpos:
横坐标
Vpos:
纵坐标
Width:
宽度
Height:
高度
active_sheet:
活动sheet
tab_width:
tab宽度
wnd_visible:
窗口是否可见
wnd_mini:
窗口最小化
hscroll_visible:
横向滚动条是否可见。
vscroll_visible:
纵向滚动条是否可见。
tabs_visible:
tab是否可见。
dates_1904:
是否使用1904日期系统
use_cell_values:
单元格的值
default_style:
默认样式
colour_RGB:
颜色
比如设置国家码:
Fromxlwtimport*
w=Workbook()
w.country_code=61
ws=w.add_sheet('AU')
w.save('country.xls')
方法有:
add_style,add_font,add_str,del_str,str_index,add_rt,rt_index,add_sheet,get_sheet,raise_bad_sheetname,convert_sheetindex,setup_xcall,add_sheet_reference。
31.1.2插入图片
add_sheet会返回一个Worksheet类。
创建的时候有可选参数cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False。
Worksheet初始化的参数有:
sheetname,parent_book,cell_overwrite_ok。
Worksheet的属性有:
Row,Column,explicit_magn_setting(默认False),visibility(默认0),split_position_units_are_twips(默认False),row_default_height_mismatch,row_default_hidden,row_default_space_above,row_default_space_below,last_used_row,first_used_row,last_used_col,row_tempfile。
以上属性类定义中。
函数构成的属性有:
name,parent(只读),rows(只读),cols(只读),merged_ranges(只读),bmp_rec(只读),show_formulas,show_grid,show_headers,panes_frozen,auto_colour_grid,cols_right_to_left,show_outline,remove_splits,selected,sheet_visible,page_preview,first_visible_row,first_visible_col,grid_colour,preview_magn,normal_magn,scl_magn,vert_split_pos,horz_split_pos,vert_split_first_visible,horz_split_first_visible,show_auto_page_breaks,dialogue_sheet,auto_style_outline,outline_below,outline_right,fit_num_pages,show_row_outline,show_col_outline,alt_expr_eval,alt_formula_entries,row_default_height,col_default_width,calc_mode,calc_count,RC_ref_mode,iterations_on,delta,save_recalc,print_headers,print_grid,vert_page_breaks,horz_page_breaks,header_str,footer_str,print_centered_vert,print_centered_horz,left_margin,right_margin,top_margin,bottom_margin,paper_size_code,print_scaling,start_page_number,fit_width_to_pages,fit_height_to_pages,print_in_rows,portrait,print_colour,print_draft,print_notes,print_notes_at_end,print_omit_errors,print_hres,print_vres,header_margin,footer_margin,copies_num,wnd_protect,obj_protect,protect,scen_protect,password。
方法有:
get_parent,write,write_rich_text,merge,write_merge,insert_bitmap,col,row,row_height,col_width。
使用insert_bitmap来插入图片。
fromxlwtimport*,
w=Workbook()
ws=w.add_sheet('Image')
ws.insert_bitmap('python.bmp',2,2)
ws.insert_bitmap('python.bmp',10,2)
w.save('image.xls')
31.1.3设置样式
改变字体的高度:
#!
/usr/bin/envpython
#-*-coding:
utf-8-*-
#Copyright(C)2005KiseliovRoman
fromxlwtimport*
w=Workbook(encoding='utf-8')
ws=w.add_sheet('Hey,Dude')
foriinrange(6,80):
fnt=Font()
fnt.height=i*20
style=XFStyle()
style.font=fnt
ws.write(i,1,'武冈')
ws.row(i).set_style(style)
w.save('row_styles.xls')
XFStyle用于设置字体样式,有描述字符串num_format_str,字体font,居中alignment,边界borders,模式pattern,保护protection等属性。
另外还可以不写单元格,直接设置格式,比如:
frompyExceleratorimport*
w=Workbook()
ws=w.add_sheet('Hey,Dude')
foriinrange(6,80):
fnt=Font()
fnt.height=i*20
style=XFStyle()
style.font=fnt
ws.row(i).set_style(style)
w.save('row_styles_empty.xls')
设置列宽:
ws.col(i).width=0x0d00+i
31.1.4更多实例
输出了红色的”Test”,并在第3行包含了公式:
importxlwt
fromdatetimeimportdatetime
font0=xlwt.Font()
font0.name='TimesNewRoman'
font0.colour_index=2
font0.bold=True
style0=xlwt.XFStyle()
style0.font=font0
style1=xlwt.XFStyle()
style1.num_format_str='D-MMM-YY'
wb=xlwt.Workbook()
ws=wb.add_sheet('ATestSheet')
ws.write(0,0,'Test',style0)
ws.write(1,0,datetime.now(),style1)
ws.write(2,0,1)
ws.write(2,1,1)
ws.write(2,2,xlwt.Formula("A3+B3"))
wb.save('example.xls')
这里另有一个公式的实例:
fromxlwtimportExcelFormulaParser,ExcelFormula
importsys
f=ExcelFormula.Formula(
"""-((1.80+2.898*1)/(1.80+2.898))*
AVERAGE((1.80+2.898*1)/(1.80+2.898);
(1.80+2.898*1)/(1.80+2.898);
(1.80+2.898*1)/(1.80+2.898))+
SIN(PI()/4)""")
合并单元格的实例
注意write_merge,1,2个参数表示行数,3,4的参数表示列数。
fromxlwtimport*
wb=Workbook()
ws0=wb.add_sheet('sheet0')
fnt=Font()
fnt.name='Arial'
fnt.colour_index=4
fnt.bold=True
borders=Borders()
borders.left=6
borders.right=6
borders.top=6
borders.bottom=6
style=XFStyle()
style.font=fnt
style.borders=borders
ws0.write_merge(3,3,1,5,'test1',style)
ws0.write_merge(4,10,1,5,'test2',style)
ws0.col
(1).width=0x0d00
wb.save('merged0.xls')
日期格式的实例
fromxlwtimport*
fromdatetimeimportdatetime
w=Workbook()
ws=w.add_sheet('Hey,Dude')
fmts=[
'M/D/YY',
'D-MMM-YY',
'D-MMM',
'MMM-YY',
'h:
mmAM/PM',
'h:
mm:
ssAM/PM',
'h:
mm',
'h:
mm:
ss',
'M/D/YYh:
mm',
'mm:
ss',
'[h]:
mm:
ss',
'mm:
ss.0',
]
i=0
forfmtinfmts:
ws.write(i,0,fmt)
style=XFStyle()
style.num_format_str=fmt
ws.write(i,4,datetime.now(),style)
i+=1
w.save('dates.xls')
下面展示了不同边框和删除样式的字体:
fromxlwtimport*
font0=Font()
font0.name='TimesNewRoman'
font0.struck_out=True
font0.bold=True
style0=XFStyle()
style0.font=font0
wb=Workbook()
ws0=wb.add_sheet('0')
ws0.write(1,1,'Test',style0)
foriinrange(0,0x53):
borders=Borders()
borders.left=i
borders.right=i
borders.top=i
borders.bottom=i
style=XFStyle()
style.borders=borders
ws0.write(i,2,'',style)
ws0.write(i,3,hex(i),style0)
ws0.write_merge(5,8,6,10,"")
wb.save('blanks.xls')
下面展示了不同颜色的字体,可以作为颜色参考:
fromxlwtimport*
font0=Font()
font0.name='TimesNewRoman'
font0.struck_out=True
font0.bold=True
style0=XFStyle()
style0.font=font0
wb=Workbook()
ws0=wb.add_sheet('0')
ws0.write(1,1,'Test',style0)
foriinrange(0,0x53):
fnt=Font()
fnt.name='Arial'
fnt.colour_index=i
fnt.outline=True
borders=Borders()
borders.left=i
style=XFStyle()
style.font=fnt
style.borders=borders
ws0.write(i,2,'colour',style)
ws0.write(i,3,hex(i),style0)
wb.save('format.xls')
超级链接的插入方法:
fromxlwtimport*
f=Font()
f.height=20*72
f.name='Verdana'
f.bold=True
f.underline=Font.UNDERLINE_DOUBLE
f.colour_index=4
h_style=XFStyle()
h_style.font=f
w=Workbook()
ws=w.add_sheet('F')
##############
##NOTE:
parametersareseparatedbysemicolon
##############
n="HYPERLINK"
ws.write_merge(1,1,1,10,Formula(n+'("http:
//www.irs.gov/pub/irs-pdf/f1000.pdf";"f1000.pdf")'),h_style)
ws.write_merge(2,2,2,25,Formula(n+'("mailto:
************************?
subject=pyExcelerator-feedback&Body=Hello,%20Roman!
";"pyExcelerator-feedback")'),h_style)
w.save("hyperlinks.xls")
通过unicode输出字符
在没有指定编码的情况下,也可以通过unicode输出字符,不过这样比较费劲,建议还是使用utf-8编码:
fromxlwtimport*
w=Workbook()
ws1=w.add_sheet(u'\N{GREEKSMALLLETTERALPHA}\N{GREEKSMALLLETTERBETA}\N{GREEKSMALLLETTERGAMMA}')
ws1.write(0,0,u'\N{GREEKSMALLLETTERALPHA}\N{GREEKSMALLLETTERBETA}\N{GREEKSMALLLETTERGAMMA}')
ws1.write(1,1,u'\N{GREEKSMALLLETTERDELTA}x=1+\N{GREEKSMALLLETTERDELTA}')
ws1.write(2,0,u'A\u2262\u0391.') #RFC2152example
ws1.write(3,0,u'HiMom-\u263a-!
') #RFC2152example
ws1.write(4,0,u'\u65E5\u672C\u8A9E')#RFC2152example
ws1.write(5,0,u'Item3is\u00a31.')#RFC2152example
ws1.write(8,0,u'\N{INTEGRAL}') #RFC2152example
w.add_sheet(u'A\u2262\u0391.') #RFC2152example
w.add_sheet(u'HiMom-\u263a-!
') #RFC2152example
one_more_ws=w.add_sheet(u'\u65E5\u672C\u8A9E')#RFC2152example
w.add_sheet(u'Item3is\u00a31.')#RFC2152example
one_more_ws.write(0,0,u'\u2665\u2665')
w.add_sheet(u'\N{GREEKSMALLLETTERETAWITHTONOS}')
w.save('unicode1.xls')
冻结:
fromxlwtimport*
w=Workbook()
ws1=w.add_sheet('sheet1')
ws2=w.add_sheet('sheet2')
ws3=w.add_sheet('sheet3')
ws4=w.add_sheet('sheet4')
ws5=w.add_sheet('sheet5')
ws6=w.add_sheet('sheet6')
foriinrange(0x100):
ws1.write(i/0x10,i%0x10,i)
foriinrange(0x100):
ws2.write(i/0x10,i%0x10,i)
foriinrange(0x100):
ws3.write(i/0x10,i%0x10,i)
foriinrange(0x100):
ws4.write(i/0x10,i%0x10,i)
foriinrange(0x100):
ws5.write(i/0x10,i%0x10,i)
foriinrange(0x100):
ws6.write(i/0x10,i%0x10,i)
ws1.panes_frozen=True
ws1.horz_split_pos=2
ws2.panes_frozen=True
ws2.vert_split_pos=2
ws3.panes_frozen=True
ws3.horz_split_pos=1
ws3.vert_split_pos=1
ws4.panes_frozen=False
ws4.horz_split_pos=12
ws4.horz_split_first_visible=2
ws5.panes_frozen=False
ws5.vert_split_pos=40
ws4.vert_split_first_visible=2
ws6.panes_frozen=False
ws6.horz_split_pos=12
ws4.horz_split_first_visible=2
ws6.vert_split_pos=40
ws4.vert_split_first_visible=2
w.save('panes.xls')
各种数值格式:
fromxlwtimport*
w=Workbook()
ws=w.add_sheet('Hey,Dude')
fmts=[
'general',
'0',
'0.00',
'#,##0',
'#,##0.00',
'"$"#,##0_);("$"#,##',
'"$"#,##0_);[Red]("$"#,##',
'"$"#,##0.00_);("$"#,##',
'"$"#,##0.00_);[Red]("$"#,##',
'0%',
'0.00%',
'0.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pythonxlwt 模块 详解