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')

 

posted @ 2017-06-25 23:56  大蓝鲸  阅读(3960)  评论(0编辑  收藏  举报