Python -- excel
coding:utf-8
import xlrd
import xlwt
import xlutils
print(xlrd.doc)
print(dir(xlrd))
#查看帮助文档
print(help(xlrd.open_workbook))
打开工作簿
wrokBook = xlrd.open_workbook('test.xlsx')
查看工作簿中所有属性与方法
print(help(wrokBook))
工作表总数
num = wrokBook.nsheets
print('工作表总数:%d' % num)
所有工作表名
print(wrokBook.sheet_names())
获取所有工作表
print(wrokBook.sheets())
获取某个工作表
1.索引
sheet = wrokBook.sheets()[0]
2.索引
sheet = wrokBook.sheet_by_index(0)
3.通过工作表名
sheet = wrokBook.sheet_by_name('Sheet1')
检查狗哥工作表是否导入完毕
wrokBook.sheet_loaded(sheet_name or index)
行操作
获取工作表的行数
print(sheet.nrows)
获取第n行,包括单元格数据类型与单元格数据值
print(sheet.row(3)) #返回该行所有单元格对象组成的列表
返回该【列】所有单元格对象组成的列表
print(sheet.row_slice(3))
返回该行所有单元格数据类型组成的列表
print(sheet.row_types(3,start_colx=0,end_colx=None))
返回该行所有单元格数据组成的列表
print(sheet.row_values(3,start_colx=0,end_colx=None))
单元格长度
print(sheet.row_len(4))
列操作
获取工作表有效列数
print(sheet.ncols)
该列所有单元格的【对象】组成的列表:类型+数据
print(sheet.col(1,start_rowx=0,end_rowx=None))
该列所有单元格的【对象】组成的列表:类型+数据
print(sheet.col_slice(3,start_rowx=0,end_rowx=None))
该列所有单元格的【数据类型】组成的列表:类型编号
print(sheet.col_types(3,start_rowx=0,end_rowx=None))
该列所有单元格的【数据】组成的列表
print(sheet.col_values(3,start_rowx=0,end_rowx=None))
print('*' * 100)
单元格操作
返回单元格对象
print(sheet.cell(2,2))
print(sheet.cell(2,2).value)
返回单元格数据类型编号
print(sheet.cell_type(2,2))
返回单元格的数据
print(sheet.cell_value(3,3))
xlwt模块
写入Excel
创建excel工作簿,编码
book= xlwt.Workbook(encoding = "utf-8")
创建一个表
sheet = book.add_sheet('测试Sheet2',cell_overwrite_ok = True)
设置样式
style = xlwt.XFStyle()
设置字体
font = xlwt.Font()
font.name = 'Time New Roman'#
font.bold = True #黑体
font.underline = True #下划线
font.italic = True #斜体
font.color_index = 2 #字体颜色,0=black,1=white,2=red,3=green...
style.font = font
写入
sheet.write(1,0,label="this is test")
sheet.write(1,0,'测试') #相同单元格赋值,cell_overwrite_ok= true
sheet.write(1,1,"中国")
sheet.write(1,2,3)
sheet.col(2).width = 10000 #设置单元格宽度
sheet.write(2,1,'添加中国元素',style) #带样式添加
输入一个日期到单元格
import datetime
style = xlwt.XFStyle()
style.num_format_str = 'yyyy-MM-DD h:mm:ss'
sheet.write(2,2,datetime.datetime.now(),style)
输入一个超链接
sheet.write(3,2,xlwt.Formula('HYPERLINK("https://www.baidu.com/";"百度")'))
插入公式
sheet.write(5,0,15)
sheet.write(5,1,24)
sheet.write(5,2,2)
sheet.write(5,3,6)
sheet.write(5,4,xlwt.Formula('SUM(A6*C6)'))
sheet.write(5,5,xlwt.Formula('SUM(A6,D6)'))
sheet.write(5,6,xlwt.Formula('SUM(A6:D6)'))
对齐方式
alignment = xlwt.Alignment()
alignment.horz = xlwt.Alignment.HORZ_CENTER #HORZ_GENERAL,HORZ_CENTER/RIGHT/FILLED/JUSTIFIED/CENTER_ACROSS-SEL/DISTRIBUTED
alignment.vert = xlwt.Alignment.VERT_CENTER #VERT_TOP/CENTER/BOTTOM/JUSTFIED/DISTRIBUTED
style.alignment = alignment
sheet.write(6,0,'河靖',style)
sheet.write(6,1,'靖远')
保存 文件存在就覆盖
book.save('xlwt_test.xls')
xlutils提供复制功能
from xlutils.copy import copy
new_book = copy(wrokBook)
new_sheet = new_book.get_sheet(0)
new_sheet.write(10,0,'复制')
new_book.save('xlwt_test1_copy.xls')