当前位置: 移动技术网 > IT编程>脚本编程>Python > python写入Excel文件操作

python写入Excel文件操作

2020年07月18日  | 移动技术网IT编程  | 我要评论

任务描述:

        最近在做一个为公文写作提供素材的任务,大致就是将原有公文进行分块保存,然后以块的形式提供给用户,辅助用户完成公文写作中各部分的编写。代码编写好后运行结果存放在json文件中,本地测试校验时需要将json文件中的结果存放到前期数据调研时的excel中预留的行、列中,那么怎么来做呢?(此问题转换为:如何将结果存入已存在的excel中?)

xlutils模块

        该模块的功能是作为xlrd和xlwt的桥梁,解决了xlrd中book对象无法编辑的问题。通过copy模块将xlrd.Book对象转换为xlwt.Workbook对象,从而实现了原始excel文件的编辑功能。

如果没有xlutils模块,可以按照以下命令安装:

pip install xlutils -i https://pypi.douban.com/simple/

代码实现:

 -*- coding:utf-8 -*-
"""Automated_testing.py
~~~~~~~~~~~~~~~~
写入Excel文件功能实现

:copyright: (c) 2020 by keyidanmeibiyao
:modified: 2020-07-15
"""
import xlrd, xlwt
import json
from xlwt import Style
from xlutils.copy import copy
excel_data = xlrd.open_workbook("C:/Users/xzc/Desktop/工作总结报告等四类调研汇总.xlsx")  # 打开待写入的Eecel文件
excel = copy(excel_data)
table_acc_inv = excel.get_sheet(2)
title_acc_inv = excel_data.sheets()[2].col_values(1)  # 获取"调查类报告"标题列,2表示excel中第三张表,1表示取第二列,返回值为list类型
with open("C:/Users/xzc/Desktop/调查类报告分块结果.json", "r", encoding='utf-8') as f:
    data_acc_inv = f.readlines()
    for i, each_data in enumerate(data_acc_inv):
        result = json.loads(each_data)
        for idx, each_title in enumerate(title_acc_inv):
            if idx != 0:  # 第1行为标题行,需排除
                if result["标题"] == each_title:  # 遍历excel中第二列的title,如果在json文件中找到一样的title,则把对应的字段添加到对应的行列
                    print("调查类报告>>>", result["标题"])
                    table_acc_inv.write(idx, 4, result["调研/普查设计"])  # (行,列,待存值)
                    table_acc_inv.write(idx, 7, result["调研/普查结果"])
                    table_acc_inv.write(idx, 10, result["存在问题和下一步工作打算"])
excel.save("C:/Users/xzc/Desktop/工作总结报告等四类调研汇总_0716.xls")

excel文件展示:

红框表示存入的列为4和7的内容

本文地址:https://blog.csdn.net/zhichaoxia/article/details/107382618

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网