python处理Excel
1,xlrd
xlrd是用来从Excel中读写数据的,但我平常只用它进行读操作,写操作会遇到些问题。用xlrd进行读取比较方便,流程和平常手动操作Excel一样,打开工作簿(Workbook),选择工作表(sheets),然后操作单元格(cell)。
1 import xlrd 2 3 data = xlrd.open_workbook('text.xls','rb') 4 print('工作表名为:'+ data.sheet_names()[0]) 5 table = data.sheets()[0] 6 nrows = table.nrows 7 ncols = table.ncols 8 print('表格行数为%d,列数为%d'%(nrows,ncols)) 9 10 #输出每一行的值 11 for item in range(table.nrows): 12 print(table.row_values(item)) 13 14 #获取单元格的值 15 cell_A1 = table.row(0)[0].value 16 cell_A2 = table.cell(0,0).value 17 cell_A3 = table.col(0)[0].value 18 19 print(cell_A1) 20 print(cell_A2) 21 print(cell_A3)
2,xlwt
如果说xlrd不是一个单纯的Reader(如果把xlrd中的后两个字符看成Reader,那么xlwt后两个字符类似看成Writer),那么xlwt就是一个纯粹的Writer了,因为它只能对Excel进行写操作。xlwt和xlrd不光名字像,连很多函数和操作格式也是完全相同。下面简要归纳一下常用操作
1 import xlwt 2 3 data = xlwt.Workbook() 4 #新建工作表,可对同一个单元格重复操作 5 table = data.add_sheet('hello', cell_overwrite_ok=True) 6 #写入数据到A1单元格 7 table.write(0,0,'hello world') 8 #保存文件,不支持xlsx格式 9 data.save('test2.xls') 10 11 #初始化样式 12 style = xlwt.XFStyle() 13 #创建字体 14 font = xlwt.Font() 15 #指定字体名字 16 font.name = 'Times New Roman' 17 #字体加粗 18 font.bold = True 19 #将该font设定为style的字体 20 style.font = font 21 22 #写入到文件时使用该样式 23 table.write(0,1,'ni hao', style) 24 #修改完要再一次保存 25 data.save('test2.xls')
由于设置单元格的背景颜色很有限,所以可以采用add_palette_colour()
and set_colour_RGB()
1 import xlwt 2 4 book = xlwt.Workbook() 5 6 # add new colour to palette and set RGB colour value 7 xlwt.add_palette_colour("custom_colour", 0x21) 8 book.set_colour_RGB(0x21, 251, 228, 228) 9 10 # now you can use the colour in styles 11 sheet1 = book.add_sheet('Sheet 1') 12 style = xlwt.easyxf('pattern: pattern solid, fore_colour custom_colour') 13 sheet1.write(0, 0, 'Some text', style) 14 15 book.save('test.xls')