excel编程:excel中是unicode编码方式

需要使用xrld,xlwt和openpyxl这三个模块,需先通过pip install下载

    xlrd 读取模块:xls,xlsx

    xlwt:写的模块:xls

    openpyxl:可读写

一、xlrd

import xlrd

1、通过excel获取具体的sheet

(1)获取整个Excel

workBook=xlrd.open_workbook('path')

这一句是把所有内容赋值给workBook,然后把句柄关闭。所以不需要做关闭文件的操作

一个excel可以由多个shee组成

(2)获取所有的sheet

sheetList=workBook.sheets()

(3)获取某一个sheet

sheet1=sheetList[0] 获取第一个sheet

workBook.sheet_by_index(0) 通过列表的下标,直接获取第一个sheet

workBook.sheet_by_name(u'中国') 通过sheet名来获取sheet

2、操作单元格

(1)获取某一行的数据

rowList=shee1.row_values(0) 获取第一行的数据

rowList[3] 获取第一行第四列的数据

(2)获取某个单元格的数据

cell = sheet1.cell(0,4) 获取第一行第五列的单元格的数据

print cell.value 打印单元格的数据

 

(3)获取某一列的数据

colList=sheet1.col_values(1) 获取第二列的数据

colList[2] 第二列第三行的数据

 

3、最后一个单元格被使用的位置

sheet1.nrows 行数

sheet1.ncols 列数

 

二、xlwt 写模块,写入到一个新的文件中,可以覆盖写

1、生成workBook

workBook=xlwt.Workbook(encoding='utf-8')

encoding默认是ascii,需要 重新定义编码方式

 

2、生成sheet

sheet1=workBook.add_sheet('test2') 添加一个名字为test2的sheet

print sheet1.name

3、定位单元格cell

sheet1.write(r=2,c=2,label='test data')

r 行号 c:列号 label :写的内容

4、 保存写的内容到指定的位置

wordBook.save('d:\\tmp\\test1.xls') 文件格式只能是xls

 

三、openpyxl读

95%的时间使用的是这个模块,目前excel处理的模块,只有这个还在维护

1、workBook

workBook=openpyxl.load_workbook('path(.xlsx)').encode('gbk')

print workBook

2、sheet

sheetList=workBook.get_sheet_names() 获取所有sheet的名称,保存为列表格式

print sheetList

3、cell

(1)sheet1=workBook.get_sheet_by_name('test1') 获取某一个具体的sheet

(2)rowsData=sheet1.rows 获取所有的行,返回一个迭代器

行和列都是从1开始的,不是从0

for i in rowsData:

#print i

#print type(i) 元组格式

for j in i:

print j.coordinate(每一个cell的下表),j.value(cell的值), 打印出所有cell的内容

print

(3)colsData=sheet1.columns 获取所有的列,并返回迭代器

(4)更新某个单元格

j.value=u'重新赋值'

workBook.save(path(之前操作的路径))

 

4、单元格的定位

两种方式:

(1)c1=sheet1.cell(coordinate='B2')

print c1.value

(2)c2=sheet1['B2'] 字典格式:通过key值找value

print c2.value

(3)c1=sheet1.cell(row=2,column=3) 第二行第三列

print c1.value

(4)切片,获取一个区域的单元格

area=sheet1['C2':'D7'] 得到一个元组

print area 元组里面嵌套元组

for i in area:

# print i

for j in i:

pass

# print j

print j.coordinate,

j.value = j.coordinate

print

 

 

四、写单元格

1、写workBook

workBook=openpyxl.Workbook()

2、sheet

sheet1=workBook.create_sheet(title='sheet1',index=0)

index=0 定位第几个sheet

3、cell

sheet1['B6'].value=u'testB6'

workBook.save(path)

 

4、在下一空行整行写入

sheet1.append([1,2,3,4,5,6,7])

 

五、excel相关的样式操作

import openpyxl

from openpyxl.styles import PatternFill,Alignment,Font,colors

workBook=openpyxl.Workbook()

sheet1=workBook.create_sheet('test')

1、合并单元格,两种方式

(1)sheet1.merge_cells(range_string='A2:G2')

(2)sheet1.merge_cells(start_row=2,start_column='A',end_row=2,end_column='G')

2、设置排版样式:对齐方式

al=Alignment(horizontal='center') horizontal:left,center,right

sheet1['A2'].alignment=al

 

3、设置背景颜色

fill=PatternFill(patternType='solid',fgColor=colors.BLUE)

sheet1['A2'].fill=fill

 

4、字体的颜色

sheet1[A2].value

font=Font(colors=colors.WHITE,size=14)

sheet1['A2'].font=font

learn to fail, failure to learn