python之excel相关操作

xlrd读取文件,但不能对其进行操作

xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作

xlwt生成Excel文件(可以控制Excel中单元格的格式),但不能在已有的excel文件基础上进行修改

xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件。

xlutils模块可以修改文件

pyExcelerator模块与xlwt类似,也可以用来生成excel文件

openpyxl库可处理.xlsx

import xlrd
import xlwt
import xlutils
from xlutils.copy import copy
# 新建excel
workbook = xlwt.Workbook(encoding = 'utf-8')
sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)    #括号里没有任何空格
sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)

#向sheet页中写入数据
sheet1.write(0,0,'this should overwrite1')
sheet1.write(0,1,'aaaaaaaaaaaa')

#保存该excel文件,有同名文件时直接覆盖
workbook.save('/gpfs/data/test.xls')

# 打开文件,并保留原格式
workbook = xlrd.open_workbook('F:\demo.xlsx',formatting_info = True)    

# 根据sheet索引获取sheet内容
sheet2 = workbook.sheet_by_index(0) 	# sheet索引从0开始
或
sheet2 = workbook.sheets()[0]	

# 根据sheet名称获取sheet内容
sheet2 = workbook.sheet_by_name('sheet2')

# sheet的名称,行数,列数
print sheet2.name,sheet2.nrows,sheet2.ncols 

# 获取所有sheet名,返回列表
worksheets = workbook.sheet_names()	

#遍历所有sheet对象
for worksheet_name in worksheets:
worksheet = workbook.sheet_by_name(worksheet_name)

# 获取整行和整列的值(数组)
rows = sheet2.row_values(3) # 获取第四行内容
cols = sheet2.col_values(2) # 获取第三列内容

# 获取单元格内容
print sheet2.cell(1,0).value.encode('utf-8')
或
print sheet2.cell_value(1,0).encode('utf-8')
或 
print sheet2.row(1)[0].value.encode('utf-8')
或
print sheet2.col(1)[0].value.encode('utf-8')
或
print sheet2.row_values(1)[0].encode('utf-8')
或
print sheet2.col_values(1)[0].encode('utf-8')

# 获取单元格内容的数据类型
print sheet2.cell(1,0).ctype

# 修改单元格内容
rb = xlrd.open_workbook('/gpfs/datra/test.xls')
w = copy(rb)    #创建副本
w.get_sheet(0).write(0,0,'foo')		#get_sheet()根据sheet名或索引获取内容
w.save('book.xls')

 

猜你喜欢

转载自blog.csdn.net/hanli1992/article/details/82498238