功能简介:支持将csv报表转成特定的格式并支持数据处理
历时三日,终完成,此功能类似于针对单元格中的内容做条件格式的处理。抛砖引玉。
实现过程:
加载csv报表—>格式转换成xlsx格式,简单处理,保存—>修改表格样式,保存文件,输出报表
加载csv报表:1、外部输入全路径 2、默认为文件夹下最新的修改的csv报表
格式转换:报表转换后文件名按照当前系统时间默认生成,保证每次转换不会有重复的文件夹
修改表格样式:按照标准表格的要求,输出报表
实现代码
import os
import logging
import datetime
import csv
import sys
import pandas as pd
import openpyxl
import time
import datetime
from openpyxl.styles import fills,colors,NamedStyle,Font,Side,Border,PatternFill,Alignment,Protection
from openpyxl.utils import get_column_letter, column_index_from_string
"""
支持配置区域
"""
filePath="" #= "D:/ButtonCG/report" #转换前文件位置
writerFilePath = "D:/FormatCoversion" #格式转换后输出的文件夹位置
configFile ="formatconfig.txt" #配置文件
#xlsx表格规则配置
rang_max_starting ='M5:' #最大值区间开始点
rang_min_starting ='M3:' #最小值区间开始点
rang_max_line ='5' #max区间
rang_min_line ='3' #min区间
row_pos = 9 #开始处理的行位置
col_pos = 13 #开始处理的列位置
#日志环境配置
logging.basicConfig(format='%(asctime)s | %(pathname)s | line:%(lineno)d | %(levelname)s | %(message)s',
level=logging.DEBUG, filemode='a',
filename='D:\\IVLogs\\' + datetime.datetime.now().strftime('%Y%m%d') + '_PY.log')
rf_handler = logging.StreamHandler(sys.stderr)
rf_handler.setLevel(logging.DEBUG)
rf_handler.setFormatter(logging.Formatter('%(asctime)s | %(pathname)s | line:%(lineno)d | %(levelname)s | %(message)s'))
logging.getLogger().addHandler(rf_handler)
"""
第一部分:实现默认加载文件夹下,最新修改的文件名的获取(全路径)
"""
"""
函数功能,查找指定目录下,最新的修改的文件名称
"""
def latestFileName(filepath):
list1 =[]
listdir(filepath,list1)
filename = newestfile(list1)
return filename
"""
函数功能:遍历查询文件夹下的文件名和修改时间
"""
def listdir(path, list_name): #传入存储的list
for file in os.listdir(path):
file_path = os.path.join(path, file)
if os.path.isdir(file_path): #如果是目录,则递归执行该方法
listdir(file_path, list_name)
else:
list_name.append((file_path,os.path.getmtime(file_path))) #把文件路径,文件修改时间加入list中
"""
函数功能:遍历查询最新的文件名称
"""
def newestfile(target_list): #传入包含文件路径,文件创建时间的list
newest_file = target_list[0] #冒泡算法找出时间最大的
for i in range(len