• Python批量修改Excel中的文件内容


    import os
    import xlrd
    from xlutils.copy import copy
    def base_dir(filename=None):
        return os.path.join(os.path.dirname(__file__),filename)

    """对excel进行操作"""
    work = xlrd.open_workbook(base_dir("excel.xls"))
    # 索引到第X个工作表
    sheet = work.sheet_by_index(0)
    #查看有多少行
    print(sheet.nrows)
    #查看有多少列
    print(sheet.ncols)
    #获取单元格内容
    print(sheet.cell_value(5,2))

    """对excel进行修改/添加内容"""

    # 找到需要更该的xls
    work = xlrd.open_workbook(base_dir("excel.xls"))
    print(work)
    # 对数据表格进行复制
    old_content = copy(work)
    # 定位到Sheet1表
    ws = old_content.get_sheet(0)
    #在sheet1表中写入内容
    ws.write(7,2,"Tao")
    #对修改后的内容进行保存
    old_content.save(base_dir("data.xls"))

    Python批量修改Excel中的文件内容

    # -*- coding: utf-8 -*-
    from xlrd import open_workbook
    from xlutils.copy import copy

    # 括号里放入要读取的文件的绝对路径
    wb = open_workbook('./res/bing.xls')
    # 获取所读取文件的第一张表单
    sheet = wb.sheet_by_index(0)
    # 获取该表单的行数
    s = sheet.nrows

    # 复制原文件,因为原文件只能读取,不能写入数据,所以要复制得到一个可以写入数据的文件
    newwb = copy(wb)
    # 获取可写文件的第一张表单
    newsheet = newwb.get_sheet(0)
    try:
        for row in range(sheet.get_rows()):
            # 遍历每一行,当8列的值小于12时,就把该值改为0
            if sheet.cell(row,7).value < 12:
                newsheet.write(row, 7, 0)
    except:
        print("")

    newwb.save('1.xls')123456789101112131415161718192021222324                                   
                   
    ————————

    xlwt 写库的局限性: 只能写入新建的 excel。
    xlutils 库的 copy 功能可能帮助我们打破这个局限性。
    首先,用pip install xlutils来添加 xlutils 库。
    import xlwt
    import xlrd
    import xlutils.copy

    rd = xlrd.open_workbook("Hello.xls", formatting_info = True)   # 打开文件
    wt = xlutils.copy.copy(rd)   # 复制
    sheets = wt.get_sheet(0)   # 读取第一个工作表
    sheets.write(m, n, "I love you!")   # 向 m-1 行 n-1 列的单元格写入内容
    wt.save("Hi.xls")   # 保存
    123456789
    实现原理就是:我先读,再用xlutils.copy的 copy 复制一份,复制的这个就能实现写入了。
    xlrd.open_workbook("Hello.xls", formatting_info = True)
    里面的参数是可选的: 很重要,这个是保留原格式,没有它的话你会发现新的excel一点样式都没有。
    喜欢的
    ————————————————

    ————————

  • 相关阅读:
    php 计算两个日期相差天数
    Linux系统查找清理磁盘大文件
    虚拟机重启网络服务失败,当查看状态显示错误Failed to start LSB......
    c++简单编写线性表(实验)
    学校的c++程序课程设计(简单的写法 并无太多c++的特色)
    C语言简单实现链栈基本几个功能
    简单用数组模拟顺序栈(c++)
    详细易懂的二叉树遍历(先中后)
    大数加法之C语言函数法(只有正数版)
    有关Java垃圾回收的几个问题
  • 原文地址:https://www.cnblogs.com/xinxihua/p/12615197.html
Copyright © 2020-2023  润新知