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