zoukankan      html  css  js  c++  java
  • python中通过xlwt、xlrd和xlutils操作xls

    • xlwt模块用于在内存中生成一个xls/xlsx对象,增加表格数据,并把内存中的xls对象保存为本地磁盘xls文件;
    • xlrd模块用于把本地xls文件加载到内存中,可以读取xls文件的表格数据,查询xls文件的相关信息;
    • xlwt可以生成xls文件,xlrd可以读取已经存在的xls文件,但是如果要修改本地已经存在的xls文件,就需要用到xlutils模块。
    • xlutils模块是xlrd和xlwt之间的桥梁,可以使用xlutils模块中的copy模块,拷贝一份通过xlrd读取到内存中的xls对象,就可以在拷贝对象上像xlwt中那样修改xls表格的内容,并保存到本地

    xlutils模块安装


    xlutils安装包下载链接: https://pypi.python.org/pypi/xlutils

    或  http://download.csdn.net/download/dcrmg/10040953

    目前最新版本是2.0  ++  名称是 "xlutils-2.0.0-py2.py3-none-any.whl"

    安装指令: pip install xlutils-2.0.0-py2.py3-none-any.whl

    下边这个示例使用xlwt生成一个xls文件,使用xlrd读取xls文件内容,使用xlutils修改本地xls文件内容:

    import xlwt
    import xlrd
    import xlutils.copy
    
    
    if __name__ == '__main__':
    
        workbook = xlwt.Workbook()     #使用xlwt新生成一个workbook
        sheet = workbook.add_sheet("sheet1")   #增加一个名称为sheet1的sheet
        sheet2 = workbook.add_sheet("sheet2")
    
        row0 = ['Order', 'Name', 'Class', 'Socer', 'Num'] #第一行内容
        row1 = [u'1', u'Tom', u'4', u'87', u'B']
        row2 = [u'2', u'Mars', u'4', u'91', u'A']
    
        for i in range(len(row0)):
            sheet.write(0, i, row0[i])    #write(行,列,值)
            sheet.write(1, i, row1[i])
            sheet.write(2, i, row2[i])
    
        workbook.save('/home/xxx/xx.xls')   #保存workbook为xls格式
    
    
    
        workbook = xlrd.open_workbook('/home/dcrmg/work/1025.xls')  #使用xlrd打开本地的workbook
        num_sheet = workbook.nsheets     #workbook内总的sheet数量
        names_sheet = workbook.sheet_names()   #workbook中所有sheet名称的列表
        sheet1 = workbook.sheet_by_index(0)   #根据序号获取sheet
        sheet2 = workbook.sheet_by_index(1)
    
        sheet = workbook.sheet_by_name(u'sheet1')  #根据sheet名称获取sheet
    
        sheet_name = sheet1.name   #sheet名称
        sheet_rows = sheet1.nrows  #sheet总的行数
        sheet_clos = sheet1.ncols  #sheet总的列数
    
        val2 = sheet1.row_values(2)  #第n+1行内容的列表
        print val2
        val3 = sheet1.col_values(0)  #第n+1列内容的列表
    
        value = sheet1.row(1)[0].value.encode('utf-8')  #row(rows)(cols) 第rows+1行第cols+1列所在表格的内容
        print value
    
        value = sheet1.col(1)[0].value.encode('utf-8')  #col(cols)(rows) 第cols+1列第rows+1行所在表格的内容
        print value
    
    
        workbook_xlutils = xlutils.copy.copy(workbook)  #使用xlrd打开一个已存在的xls,并通过xlutils复制
        sheet1_xlutils = workbook_xlutils.get_sheet(0)  #通过sheet序号获取sheet
    
        row3 = [u'3', u'Kim', u'4', u'100', u'A+']
        row4 = [u'4', u'Klus', u'4', u'98', u'A+']
        for i in range(len(row3)):                   #写入sheet_xlutils的修改值
            sheet1_xlutils.write(3, i, row3[i])
            sheet1_xlutils.write(4, i, row4[i])
        sheet1_xlutils.write(5, 10, 99)
    
        workbook_xlutils.save('/home/xxx/xx.xls')  #保存xls
    
    
  • 相关阅读:
    GSI发布EnCase 6.19版本
    [EnCase v7] EnCase v7 使用问题小结
    WebForm和WinForm通用的取当前根目录的方法
    存储过程示例临时表代替游标
    自定义协议的注册及程序示例(C#)
    关于System.Web.HttpContext.Current.Session 为 null的问题
    存储过程调用DTS包实现大批量数据导入
    Ext.app.SearchField在IE8中显示异常的问题
    用于 Windows Server 2003 的远程桌面连接 (Terminal Services Client 6.0) (KB925876)
    一段没有看懂的JS代码
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9411784.html
Copyright © 2011-2022 走看看