python操作Excel

发布时间:2019-09-17 07:45:25编辑:auto阅读(1769)

    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()  #回收套件


关键字