




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
python模块介绍- xlwt 创建xls文件(excel)2013-06-24磁针石转自:/snake-hand/p/3153158.html31.1 xlwt 实例131.1.1 创建简单的excel文件131.1.2 插入图片2使用 insert_bitmap来插入图片。331.1.3 设置样式331.1.4 更多实例4输出了红色的”Test”,并在第3行包含了公式:4这里另有一个公式的实例:5日期格式的实例6下面展示了不同边框和删除样式的字体:7下面展示了不同颜色的字体,可以作为颜色参考:7通过unicode输出字符9冻结:10更多的公式:12保护实例:1331.1.5 完整实例1631.1 xlwt 实例31.1.1 创建简单的excel文件下面例子,创建一个名为mini.xls的文件,它有一个空sheet:xlwt was here。from xlwt import *w = Workbook()ws = w.add_sheet(xlwt was here)w.save(mini.xls)Workbook类初始化时有encoding和style_compression参数。encoding,设置字符编码,一般要这样设置:w = Workbook(encoding=utf-8),就可以在excel中输出中文了。默认是ascii。当然要记得在文件头部添加:#!/usr/bin/env python# -*- coding: utf-8 -*-style_compression表示是否压缩,不常用。Workbook还有一些属性:Owner设置文档所有者。country_code:国家码wnd_protect:窗口保护obj_protect:对象保护Protect:保护backup_on_save:保存时备份Hpos:横坐标Vpos:纵坐标Width:宽度Height:高度active_sheet:活动sheettab_width:tab宽度wnd_visible:窗口是否可见wnd_mini:窗口最小化hscroll_visible:横向滚动条是否可见。vscroll_visible:纵向滚动条是否可见。tabs_visible:tab是否可见。dates_1904:是否使用1904日期系统use_cell_values:单元格的值default_style:默认样式colour_RGB:颜色比如设置国家码:From xlwt import *w= Workbook()w.country_code= 61ws= 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来插入图片。from xlwt import *,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) 2005 Kiseliov Romanfromxlwt import *w= Workbook(encoding=utf-8)ws= w.add_sheet(Hey, Dude)fori in range(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等属性。另外还可以不写单元格,直接设置格式,比如:from pyExcelerator import *w= Workbook()ws= w.add_sheet(Hey, Dude)fori in range(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 + i31.1.4 更多实例输出了红色的”Test”,并在第3行包含了公式:importxlwtfromdatetime import datetimefont0= xlwt.Font()= Times New Romanfont0.colour_index= 2font0.bold= Truestyle0= xlwt.XFStyle()style0.font= font0style1= xlwt.XFStyle()style1.num_format_str= D-MMM-YYwb= xlwt.Workbook()ws= wb.add_sheet(A Test Sheet)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)这里另有一个公式的实例:fromxlwt import ExcelFormulaParser, ExcelFormulaimportsysf= 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的参数表示列数。fromxlwt import *wb= Workbook()ws0= wb.add_sheet(sheet0)fnt= Font()= Arialfnt.colour_index= 4fnt.bold= Trueborders= Borders()borders.left= 6borders.right= 6borders.top= 6borders.bottom= 6style= XFStyle()style.font= fntstyle.borders = bordersws0.write_merge(3,3, 1, 5, test1, style)ws0.write_merge(4,10, 1, 5, test2, style)ws0.col(1).width= 0x0d00wb.save(merged0.xls)日期格式的实例fromxlwt import *fromdatetime import datetimew= Workbook()ws= w.add_sheet(Hey, Dude)fmts= M/D/YY, D-MMM-YY, D-MMM, MMM-YY, h:mm AM/PM, h:mm:ss AM/PM, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, h:mm:ss, mm:ss.0,i= 0forfmt in fmts: ws.write(i, 0, fmt) style = XFStyle() style.num_format_str = fmt ws.write(i, 4, datetime.now(), style) i += 1w.save(dates.xls)下面展示了不同边框和删除样式的字体:fromxlwt import *font0= Font()= Times New Romanfont0.struck_out= Truefont0.bold= Truestyle0= XFStyle()style0.font= font0wb= Workbook()ws0= wb.add_sheet(0)ws0.write(1,1, Test, style0)fori in range(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)下面展示了不同颜色的字体,可以作为颜色参考:from xlwt import *font0 = Font() = Times New Romanfont0.struck_out = Truefont0.bold = Truestyle0 = XFStyle()style0.font = font0wb = Workbook()ws0 = wb.add_sheet(0)ws0.write(1, 1, Test, style0)for i in range(0, 0x53): fnt = Font() = 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)超级链接的插入方法:fromxlwt import *f= Font()f.height= 20*72= Verdanaf.bold= Truef.underline= Font.UNDERLINE_DOUBLEf.colour_index= 4h_style= XFStyle()h_style.font= fw= Workbook()ws= w.add_sheet(F)#NOTE: parameters are separated by semicolon!#n= HYPERLINKws.write_merge(1,1, 1, 10, Formula(n +(/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编码:fromxlwt import *w= Workbook()ws1= w.add_sheet(uNGREEK SMALL LETTER ALPHANGREEK SMALL LETTER BETANGREEKSMALL LETTER GAMMA)ws1.write(0,0, uNGREEK SMALL LETTER ALPHANGREEK SMALL LETTER BETANGREEK SMALLLETTER GAMMA)ws1.write(1,1, uNGREEK SMALL LETTER DELTAx = 1 + NGREEK SMALL LETTER DELTA)ws1.write(2,0,uAu2262u0391.) # RFC2152 examplews1.write(3,0,uHi Mom -u263a-!) # RFC2152 examplews1.write(4,0,uu65E5u672Cu8A9E) # RFC2152 examplews1.write(5,0,uItem 3 is u00a31.) # RFC2152 examplews1.write(8,0,uNINTEGRAL) # RFC2152 examplew.add_sheet(uAu2262u0391.) # RFC2152 examplew.add_sheet(uHiMom -u263a-!) # RFC2152 exampleone_more_ws= w.add_sheet(uu65E5u672Cu8A9E) # RFC2152 examplew.add_sheet(uItem3 is u00a31.) # RFC2152 exampleone_more_ws.write(0,0, uu2665u2665)w.add_sheet(uNGREEKSMALL LETTER ETA WITH TONOS)w.save(unicode1.xls)冻结:fromxlwt import *w= Workbook()ws1= w.add_sheet(sheet 1)ws2= w.add_sheet(sheet 2)ws3= w.add_sheet(sheet 3)ws4= w.add_sheet(sheet 4)ws5= w.add_sheet(sheet 5)ws6= w.add_sheet(sheet 6)fori in range(0x100): ws1.write(i/0x10, i%0x10, i)fori in range(0x100): ws2.write(i/0x10, i%0x10, i)fori in range(0x100): ws3.write(i/0x10, i%0x10, i)fori in range(0x100): ws4.write(i/0x10, i%0x10, i)fori in range(0x100): ws5.write(i/0x10, i%0x10, i)fori in range(0x100): ws6.write(i/0x10, i%0x10, i)ws1.panes_frozen= Truews1.horz_split_pos= 2ws2.panes_frozen= Truews2.vert_split_pos= 2ws3.panes_frozen= Truews3.horz_split_pos= 1ws3.vert_split_pos= 1ws4.panes_frozen= Falsews4.horz_split_pos= 12ws4.horz_split_first_visible= 2ws5.panes_frozen= Falsews5.vert_split_pos= 40ws4.vert_split_first_visible= 2ws6.panes_frozen= Falsews6.horz_split_pos= 12ws4.horz_split_first_visible= 2ws6.vert_split_pos= 40ws4.vert_split_first_visible= 2w.save(panes.xls)各种数值格式:fromxlwt import *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.00E+00, # ?/?, # ?/?, M/D/YY, D-MMM-YY, D-MMM, MMM-YY, h:mm AM/PM, h:mm:ss AM/PM, h:mm, h:mm:ss, M/D/YY h:mm, _(#,#0_);(#,#0), _(#,#0_);Red(#,#0), _(#,#0.00_);(#,#0.00), _(#,#0.00_);Red(#,#0.00), _($* #,#0_);_($*(#,#0);_($* -_);_(_), _(* #,#0_);_(* (#,#0);_(*-_);_(_), _($*#,#0.00_);_($* (#,#0.00);_($*-?_);_(_), _(* #,#0.00_);_(* (#,#0.00);_(*-?_);_(_), mm:ss, h:mm:ss, mm:ss.0, #0.0E+0, i= 0forfmt in fmts: ws.write(i, 0, fmt) style = XFStyle() style.num_format_str = fmt ws.write(i, 4, -1278.9078, style) i += 1w.save(num_formats.xls)更多的公式:fromxlwt import *w= Workbook()ws= w.add_sheet(F)ws.write(0,0, Formula(-(1+1)ws.write(1,0, Formula(-(1+1)/(-2-2)ws.write(2,0, Formula(-(134.8780789+1)ws.write(3,0, Formula(-(134.8780789e-10+1)ws.write(4,0, Formula(-1/(1+1)+9344)ws.write(0,1, Formula(-(1+1)ws.write(1,1, Formula(-(1+1)/(-2-2)ws.write(2,1, Formula(-(134.8780789+1)ws.write(3,1, Formula(-(134.8780789e-10+1)ws.write(4,1, Formula(-1/(1+1)+9344)ws.write(0,2, Formula(A1*B1)ws.write(1,2, Formula(A2*B2)ws.write(2,2, Formula(A3*B3)ws.write(3,2, Formula(A4*B4*sin(pi()/4)ws.write(4,2, Formula(A5%*B5*pi()/1000)#NOTE: parameters are separated by semicolon!#ws.write(5,2,Formula(C1+C2+C3+C4+C5/(C1+C2+C3+C4/(C1+C2+C3+C4/(C1+C2+C3+C4)+C5)+C5)-20.3e-2)ws.write(5,3, Formula(C12)ws.write(6,2, Formula(SUM(C1;C2;C3;C4)ws.write(6,3, Formula(SUM($A$1:$C$5)ws.write(7,0, Formula(lkjljllkllkl)ws.write(7,1, Formula(yuyiyiyiyi)ws.write(7,2, Formula(A8 & B8 & A8)ws.write(8,2, Formula(now()ws.write(10,2, Formula(TRUE)ws.write(11,2, Formula(FALSE)ws.write(12,3, Formula(IF(A1A2;3;hkjhjkhk)w.save(formulas.xls)保护实例:fromxlwt import *fnt= Font()= Arialfnt.colour_index= 4fnt.bold= Trueborders= Borders()borders.left= 6borders.right= 6borders.top= 6borders.bottom= 6style= XFStyle()style.font= fntstyle.borders= borderswb= Workbook()ws0= wb.add_sheet(Rows Outline)ws0.write_merge(1,1, 1, 5, test 1, style)ws0.write_merge(2,2, 1, 4, test 1, style)ws0.write_merge(3,3, 1, 3, test 2, style)ws0.write_merge(4,4, 1, 4, test 1, style)ws0.write_merge(5,5, 1, 4, test 3, style)ws0.write_merge(6,6, 1, 5, test 1, style)ws0.write_merge(7,7, 1, 5, test 4, style)ws0.write_merge(8,8, 1, 4, test 1, style)ws0.write_merge(9,9, 1, 3, test 5, style)ws0.row(1).level= 1ws0.row(2).level= 1ws0.row(3).level= 2ws0.row(4).level= 2ws0.row(5).level= 2ws0.row(6).level= 2ws0.row(7).level= 2ws0.row(8).level= 1ws0.row(9).level= 1ws1= wb.add_sheet(Columns Outline)ws1.write_merge(1,1, 1, 5, test 1, style)ws1.write_merge(2,2, 1, 4, test 1, style)ws1.write_merge(3,3, 1, 3, test 2, style)ws1.write_merge(4,4, 1, 4, test 1, style)ws1.write_merge(5,5, 1, 4, test 3, style)ws1.write_merge(6,6, 1, 5, test 1, style)ws1.write_merge(7,7, 1, 5, test 4, style)ws1.write_merge(8,8, 1, 4, test 1, style)ws1.write_merge(9,9, 1, 3, test 5, style)ws1.col(1).level= 1ws1.col(2).level= 1ws1.col(3).level= 2ws1.col(4).level= 2ws1.col(5).level= 2ws1.col(6).level= 2ws1.col(7).level= 2ws1.col(8).level= 1ws1.col(9).level= 1ws2= wb.add_sheet(Rows and Columns Outline)ws2.write_merge(1,1, 1, 5, test 1, style)ws2.write_merge(2,2, 1, 4, test 1, style)ws2.write_merge(3,3, 1, 3, test 2, style)ws2.write_merge(4,4, 1, 4, test 1, style)ws2.write_merge(5,5, 1, 4, test 3, style)ws2.write_merge(6,6, 1, 5, test 1, style)ws2.write_merge(7,7, 1, 5, test 4, style)ws2.write_merge(8,8, 1, 4, test 1, style)ws2.write_merge(9,9, 1, 3, test 5, style)ws2.row(1).level= 1ws2.row(2).level= 1ws2.row(3).level= 2ws2.row(4).level= 2ws2.row(5).level= 2ws2.row(6).level= 2ws2.row(7).level= 2ws2.row(8).level= 1ws2.row(9).level= 1ws2.col(1).level= 1ws2.col(2).level= 1ws2.col(3).level= 2ws2.col(4).level= 2ws2.col(5).level= 2ws2.col(6).level= 2ws2.col(7).level= 2ws2.col(8).level= 1ws2.col(9).level= 1tect= Truews0.wnd_protect= Truews0.obj_protect= Truews0.scen_protect= Truews0.password= 123456tect= Truews1.wnd_protect= Truews1.obj_protect= Truews1.scen_protect= Truews1.password= tect= Truews2.wnd_protect= Truews2.obj_protect= Truews2.scen_protect= Truews2.password= tect= Truewb.wnd_protect= Truewb.obj_protect= Truewb.save(protection.xls)31.1.5 完整实例下面程序的write_xls对输出xls进行了一定封装,比较有实用意义。#Write an XLS file with a single worksheet, containing#a heading row and some rows of data.importxlwtimportdatetimeezxf= xlwt.easyxfdefwrite_xls(file_name,sheet_name, headings, data, heading_xf, data_xfs): book = xlwt.Workbook() sheet = book.add_sheet(sheet_na
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塔城事业单位笔试真题2025
- 2025年山西公务员考试试题真题
- Unit 9 Let's smell the flowers.教学设计-2023-2024学年小学英语一级下剑桥少儿英语
- 2025租赁合同担保条款
- 云南省考真题2025
- 青海事业单位笔试真题2025
- 金华事业单位笔试真题2025
- 2025境外雇佣合同范本
- 化肥厂安全例会记录细则
- 2025智能穿戴设备ID设计招标合同
- 产科护理教学比赛课件
- 占道施工安全培训内容课件
- 2025年芜湖市鸠江区村级后备干部集中招录工作101名考试参考题库及答案解析
- 2025年美容整形师专业知识考核试题及答案
- 2025年茶粉行业研究报告及未来行业发展趋势预测
- 培训民警拍照宣传课件
- 中药煎服方法
- 研发支出辅助账汇总表
- 聚合物混凝土定义、分类和性质Polymerconcrete
- 安全用电、用电安全培训ppt课件
- Q∕GDW 11612.2-2018 低压电力线高速载波通信互联互通技术规范 第2部分:技术要求
评论
0/150
提交评论