• Python 不改变原excel文件进行数据写入


    最近在用Python写入文件的时候,发现之前写入的方法会覆盖掉原excel中的公式,原代码如下

    def write_excel_xls(row, col, value):
        """
        excel 写入
        :param row: 
        :param col: 
        :param value: 
        :return: 
        """
        book_r = xlrd.open_workbook(data_file)
        book_w = copy(book_r)  # 复制原表格
        sheet_1 = book_w.get_sheet(0)  # 以编辑方式得到文件的第一个工作表
        sheet_1.write(row, col, value)   # 把内容写入表格
        os.remove(data_file)  # 删除原文件
        book_w.save(data_file)  # 保存修改的文件为原文件

    找了资料后发现, copy 的时候不会copy excel中的公式

    于是尝试用其他的方法进行excel写入,代码如下:

    from openpyxl import load_workbook
    from data.datapath import file_name
    
    
    workbook_ = load_workbook(file_name)
    print(workbook_.sheetnames)
    sheetnames = workbook_.sheetnames  # 获得表单名字
    sheet = workbook_[sheetnames[1]]
    # sheet['A7'] = '47'
    workbook_.save(file_name)

    写入的过程有点波折,百度其他的代码如下

    from openpyxl import load_workbook
    from data.datapath import file_name
    
    workbook_ = load_workbook(file_name)
    sheetnames = workbook_.get_sheet_names()  # 获得表单名字
    sheet = workbook_.get_sheet_by_name(sheetnames[0])
    sheet['A1'] = '47'
    workbook_.save(file_name)

    运行发现报错

     提醒方法改为sheetnames,再改

    from openpyxl import load_workbook
    from data.datapath import file_name
    
    workbook_ = load_workbook(file_name)
    sheetnames = workbook_.sheetnames  # 获得表单名字
    sheet = workbook_.get_sheet_by_name(sheetnames[0])
    sheet['A1'] = '47'
    workbook_.save(file_name)

    继续报错

     发现又是写法错误

    from openpyxl import load_workbook
    from data.datapath import file_name
    
    workbook_ = load_workbook(file_name)
    sheetnames = workbook_.sheetnames # 获得表单名字
    sheet = workbook_[sheetnames[0]]
    sheet['A1'] = '47'
    workbook_.save(file_name)

    改成这样就好啦

    打开excel,发现已经更改了数据,并且里面的公式也没有被覆盖

    ps:可能会出现其他的错误,将excel另存一次就好了。

                ----------------踩坑无数次,需要我们学会看错误提示

  • 相关阅读:
    java基础
    mysql入门
    基础整理
    遍历列表的两种方式
    oracle常用操作
    DIV+CSS网页布局技巧实例1:设置网页整体居中的代码
    html+css 淘宝首页静态页面案例
    WEB前端开发规范文档+CSS命名规范
    day05-苏宁易购导航html
    day04-html
  • 原文地址:https://www.cnblogs.com/jescs/p/12188319.html
Copyright © 2020-2023  润新知