# 一些工具函数
class Util:
# 基于excel生成pdf
@staticmethod
def excel_to_pdf(base_path, target_excel_name, target_pdf_name, center_code_gi_map):
pass
# # Open Microsoft Excel
# excel = client.Dispatch("Excel.Application")
# # Read Excel File
# sheets = excel.Workbooks.Open(base_path + "/" + target_excel_name)
# for sheet in sheets.Worksheets:
# pdf_name = target_pdf_name.replace('XXX', sheet.name).replace('GI', center_code_gi_map.get(sheet.name))
# print("开始导出pdf:"+pdf_name)
# # Convert into PDF File
# folder = os.path.exists(base_path + "/" + center_code_gi_map.get(sheet.name))
# # 没有的话先创建
# if not folder:
# os.makedirs(base_path + "/" + center_code_gi_map.get(sheet.name))
# sheet.ExportAsFixedFormat(0, base_path + "/" + center_code_gi_map.get(sheet.name) + "/" + pdf_name + ".pdf")
# 将金额大写
@staticmethod
def up_money(digital):
str_digital = str(digital)
# 去掉数字里面的逗号
str_digital = str_digital.replace(",", "")
chinese = {'1': '壹', '2': '贰', '3': '叁', '4': '肆', '5': '伍', '6': '陆', '7': '柒', '8': '捌', '9': '玖',
'0': '零'}
chinese2 = ['拾', '佰', '仟', '万', '厘', '分', '角']
jiao = ''
bs = str_digital.split('.')
yuan = bs[0]
if len(bs) > 1:
jiao = bs[1]
r_yuan = [i for i in reversed(yuan)]
count = 0
for i in range(len(yuan)):
if i == 0:
r_yuan[i] += '圆'
continue
r_yuan[i] += chinese2[count]
count += 1
if count == 4:
count = 0
chinese2[3] = '亿'
s_jiao = [i for i in jiao][:3] # 去掉小于厘之后的
j_count = -1
for i in range(len(s_jiao)):
s_jiao[i] += chinese2[j_count]
j_count -= 1
last = [i for i in reversed(r_yuan)] + s_jiao
last_str = ''.join(last)
for i in range(len(last_str)):
digital = last_str[i]
if digital in chinese:
last_str = last_str.replace(digital, chinese[digital])
return last_str
# 格式化金额 - 时返回0 ,0.0时返回0,增加千分位和保留两位小数
@staticmethod
def format_money(money):
if type(money) == str and '-' == money:
return '0'
if type(money) == float and int(money) == 0:
return '0'
if type(money) == float or type(money) == int:
money = round(money, 2)
return format(money, ',')
return money