Python之Excel编程
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