xlwt Excel
python有很多模块都是用来操作excel的,比如xlrd,xlwt,pyExcelerator。
pip install xlrd
pip install xlwt
# -*- coding: utf-8 -*- import xlwt import xlrd from xlwt import Font from xlwt import XFStyle from xlwt import Alignment #python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。 def main(): # testXlwt() # testXlrd() testNormal() def testNormal(): workbook = xlwt.Workbook() worksheet = workbook.add_sheet('My Sheet') worksheet.write_merge(0, 0, 0, 3, 'First Merge') # Merges row 0's columns 0 through 3. font = xlwt.Font() # Create Font font.bold = True style = xlwt.XFStyle() style.font = font # Add Bold Font to Style # write_merge(x, x + h, y, w + y, string, sytle) # x表示行,y表示列,w表示跨列个数,h表示跨行个数,string表示要写入的单元格内容,style表示单元格样式。 # 注意,x,y,w,h,都是以0开始计算的。 worksheet.write_merge(1, 2, 0, 3, 'Second Merge', style) # Merges row 1 through 2's columns 0 through 3. workbook.save('d:/test2.xls') def testXlwt(): # 创建一个Workbook对象,这就相当于创建了一个Excel文件 #Workbook类初始化时有encoding和style_compression参数 #encoding:设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。默认是ascii。 #style_compression:表示是否压缩,不常用。 book = xlwt.Workbook(encoding='utf-8', style_compression=0) #创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。 #在电脑桌面右键新建一个Excel文件,其中就包含sheet1,sheet2,sheet3三张表 #其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False sheet = book.add_sheet('test', cell_overwrite_ok=True) #设置格式 #设置字体 font = Font() font.name = 'Times New Roman' font.bold= True font.colour_index = 3 font.height = 500 font.underline = True font.italic = True # 斜体字 #设置对齐方式 align = Alignment() align.horz = xlwt.Alignment.HORZ_LEFT align.vert = xlwt.Alignment.VERT_CENTER #设置背景色颜色 pattern = xlwt.Pattern() # Create the Pattern pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12 # May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta pattern.pattern_fore_colour = 5 #设置边框 borders = xlwt.Borders() # Create Borders borders.left = xlwt.Borders.DASHED #DASHED:虚线 NO_LINE:没有 THIN:实线 # May be: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR, MEDIUM_DASHED, THIN_DASH_DOTTED, # MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED, MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED borders.right = xlwt.Borders.DASHED borders.top = xlwt.Borders.DASHED borders.bottom = xlwt.Borders.DASHED borders.left_colour = 0x40 borders.right_colour = 0x40 borders.top_colour = 0x40 borders.bottom_colour = 0x40 style = XFStyle() style.font = font style.alignment = align style.pattern = pattern style.borders = borders #sheet.row(1).set_style(style) # 设置单元格宽度 sheet.col(0).width = 3333 sheet.col(1).width = 6000 # 向表test中添加数据 sheet.write(0, 0, 'EnglishName') # 其中的'0-行, 0-列'指定表中的单元,'EnglishName'是向该单元写入的内容 sheet.write(1, 0, 'Marcovaldo') sheet.write(2, 0, 'bill') txt1 = '中文名字' # 此处需要将中文字符串解码成unicode码,否则会报错 # 不带样式的写入 sheet.write(0, 1, txt1.encode('utf-8').decode('utf-8')) txt2 = '马可瓦多' # 带样式的写入 sheet.write(1, 1, txt2.encode('utf-8').decode('utf-8'), style) sheet.write(2, 1, xlwt.Formula('HYPERLINK("http://www.google.com";"tan"')) # 最后,将以上操作保存到指定的Excel文件中 book.save(r'd:\test1.xls') # 在字符串前加r,声明为raw字符串,这样就不会处理其中的转义了。否则,可能会报错 def testXlrd(): xlsfile = r"d:\test1.xls"# 打开指定路径中的xls文件 book = xlrd.open_workbook(xlsfile)#得到Excel文件的book对象,实例化对象 sheet0 = book.sheet_by_index(0) # 通过sheet索引获得sheet对象 print("1:", sheet0) sheet_name = book.sheet_names()[0]# 获得指定索引的sheet表名字 print("2:", sheet_name) # 通过sheet名字来获取,当然如果知道sheet名字就可以直接指定 #sheetByName == sheet0 sheetByName = book.sheet_by_name(sheet_name) print("3:", sheetByName) nrows = sheetByName.nrows# 获取行总数 ncols = sheet0.ncols #获取列总数 print("4:", nrows, ncols) #循环打印每一行的内容 for i in range(nrows): rowContent = sheet0.row_values(i) print(rowContent) for i in range(ncols): closContent = sheet0.col_values(i) print(closContent) # 通过坐标读取表格中的数据 cell_value1 = sheet0.cell_value(0, 0) print(cell_value1) if __name__ == '__main__': main()

浙公网安备 33010602011771号