码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-01-13 17:48:59      阅读:530      评论:0      收藏:0      [点我收藏+]

标签:rom   表单   错误   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另存一次就好了。

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

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

标签:rom   表单   错误   excel   百度   写法   图片   --   方法   

原文地址:https://www.cnblogs.com/jescs/p/12188319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!