# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
import time
import os
import csv
import xlwt
import xlrd
import datetime
from xlutils.copy import copy
from openpyxl import load_workbook
def sheet_exists(filename_path, excel_sheet_name) -> bool:
""" 判断Excel文件里是否有这个sheet name """
try:
workbook = load_workbook(filename_path)
return excel_sheet_name in workbook.sheetnames
except FileNotFoundError:
return False
def make_excel_file(filename_path, excel_sheet_name, excel_json_dict_list):
# 判断excel文件是否存在,不存在就新建一个
if not os.path.exists(filename_path):
# 新建workbook
wk = xlwt.Workbook()
sheet1 = wk.add_sheet(excel_sheet_name, cell_overwrite_ok=True)
# 写入表头
excel_field_list = list(excel_json_dict_list[0].keys())
for index, fieldname in enumerate(excel_field_list):
sheet1.write(0, index, fieldname) # 参数1:写入第几行 参数2:写入第几列 参数3:写入的内容
# 保存
wk.save(filename_path)
time.sleep(2)
elif sheet_exists(filename_path, excel_sheet_name) is False:
# 创建一个Workbook实例
wk = xlwt.Workbook()
# 添加一个名为excel_sheet_name的工作表
sheet1 = wk.add_sheet(excel_sheet_name)
# 写入表头
excel_field_list = list(excel_json_dict_list[0].keys())
for index, fieldname in enumerate(excel_field_list):
sheet1.write(0, index, fieldname) # 参数1:写入第几行 参数2:写入第几列 参数3:写入的内容
# 保存
wk.save(filename_path)
time.sleep(2)
def write_into_excel_file(carrier_code: str, excel_json_dict_list: list):
""" 首次或者追加写入Excel文件 """
excel_sheet_name = carrier_code
if not excel_json_dict_list:
return
filename_path = f'{glv["glv_write_into_excel_file_path"]}\联合_{datetime.datetime.now().strftime("%Y%m%d")}.xlsx'
# 判断excel文件是否存在,不存在就新建一个
make_excel_file(filename_path, excel_sheet_name, excel_json_dict_list)
# 读的对象 - 打开文件开始继续写
xlrd_workbook_data = xlrd.open_workbook(filename_path)
xlrd_sheet_table = xlrd_workbook_data.sheet_by_name(excel_sheet_name)
nrows = xlrd_sheet_table.nrows # 当前sheet页,总行数
ncols = xlrd_sheet_table.ncols # 当前sheet页,总列数
# 根据field_name字段名,查询Excel表的每个字段所在的第几列数
field_name_list = xlrd_sheet_table.row_values(0) # 获取第一行的所有值,返回一个列表
# xlrd_workbook_data.release_resources()
# 写的对象
new_workbook = copy(xlrd_workbook_data)
new_worksheet = new_workbook.get_sheet(0)
for dict_index, excel_json_dict in enumerate(excel_json_dict_list):
for filed_name, field_value in excel_json_dict.items():
# field_name_list.index(field_value) 返回列表元素值的下表
new_worksheet.write(nrows + dict_index, field_name_list.index(filed_name), field_value) # 参数1:写入第几行 参数2:写入第几列 参数3:写入的内容
new_workbook.save(filename_path)
def main(args):
pass
def main(args):
pass
写入Excel文件,追加写入
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、整体数据一次性写入 解释:其中的HttpServletResponse response 参数可以不用(如果你...
- openpyxl的使用 这个库作用: 专门处理Excel2007以上产生的xlsx文件,xls和xlsx之间容易。...
- 自动化测试经常遇到数据驱动测试,例如读取2000个账号和密码,进行自动化登录获取token。 **********...