import xlrd
import xlwt
import xlutils
import win32com
#xlrd
#打开excel
data = xlrd.open_workbook("I+P.xls")
#查看文件中包含sheet的名称
sheetNames = data.sheet_names()
#得到第一个工作表,或者通过索引顺序或工作表名称
firstTable = data.sheets()[0]
firstTable1 = data.sheet_by_index(0)
# print firstTable
# print firstTable1
#获取行数和列数
nrows = firstTable.nrows
ncols = firstTable.ncols
# print nrows,ncols
#获取正行或整列的值(数组)
test1 = firstTable.row_values(1)
test2 = firstTable.col_values(1)
# print test1,test2
#单元格
cell_A1 = firstTable.cell(0,0).value
cell_C4 = firstTable.cell(2,3).value
#
# print cell_A1
# print cell_C4
#分别使用行列索引
cell_A1 = firstTable.row(0)[0].value
cell_A2 = firstTable.col(1)[0].value
print cell_A1
print cell_A2
# #xlwt
# #新建一个excel文件
# file = xlwt.Workbook()
# #新建一个sheet
# table = file.add_sheet("yanshan",cell_overwrite_ok=True)
# #cell_overwirte_ok参数控制单元格是否能够重写
# #写入数据table.wirte(行,列,value)
# table.write(0,1,"yanshan")
# table.write(0,0,"test")
# table.write(1,1,"jialing")
# table.write(1,2,u"知青")
#
# #另外,可以使用style
# style = xlwt.XFStyle()#初始化样式
# font = xlwt.Font()#为样式创建字体
# font.name = "Times New Roman"
# font.bold = True
# style.font = font#为样式设置字体
# table.write(5,5,"some bold Times text",style)
#
# #保存文件
# file.save("demo.xls")
# #xlutils,具体操作实例
# from xlrd import open_workbook
# from xlutils.copy import copy
#
# rb = open_workbook(u"I+P.xls", formatting_info=True)
# #参数formatting_info=True带格式拷贝
# wb = copy(rb) #经过copy后得到的wb就是可写的Workbook对象了
# #注:不支持图片拷贝,且支持的颜色种类较少
# #对其进行写操作
# ws = wb.get_sheet(2)
# ws.write(2, 0, "changed!")
#
# wss = wb.add_sheet("1223", 1)
# wss.write_merge(2, 2, 0, 5, "changed!")
# # wss.wirte(2, 0, "123")
#
# wb.save("I+P.xls")
#win32com
# 调用com组件操作Excel,大部分函数调用类似VBA(可查看VBA帮助文档)
# 操作步骤:
# 连接COM库
xlsApp = win32com.cllient.Dispatch("Excel.Application")
xlsApp = win32com.client.DispatchEx("Excel.Application")
#区别:DispatchEx新建一个Excel进程
#创建表(或打开)
book = xlsApp.Workbooks.Open(filename)
#新建
book = xlsApp.Workbooks.Add()
#获取页签
sheet = book.Wooksheets(n) #n为名字或索引
#添加页签
sheet = book.Wooksheets.Add(name)
#页签句柄属性
sheet.name
#删除页签
Worksheets(n).Delete()
#单元格赋值
sheet.Cells(r,c).Value
#保存工作表
book.Save()
book.SaveAs(filename)
#关闭工作表
books.Close(SaveChange = False)
#关闭COM组件
xlsApp.Application.Quit()
del xlsApp
#删除行/列
sheet.Rows(r).Delete
sheet.Columns(r).Delete
#设置所有行/列高
sheet.Rows.RowsHeigh
sheet.Columns.ColumnWidth
#Excel拷贝对象:
sheet1.copy(sheet2) #页签拷贝
Range1.copy(Range2) #范围拷贝
#多线程操作Excel使用的特殊函数(动态链接):
pythoncom.CoInitialize() #开辟套件
pythoncom.CoUnInitialize() #回收套件