陶瓷原料化学成分分析

发布于:2022-12-12 ⋅ 阅读:(760) ⋅ 点赞:(0)
import openpyxl
import time
from openpyxl.styles import Font, Alignment
from openpyxl.styles import PatternFill, Border, Side

# 以列表形式列出各原料成份
raw = ['一级土', '二级土', '黑泥', '煅烧土'   , '红泥', '长石', '滑石', '石灰'   , '石英', '新石英', '白云石']
element_ = ['SiO2',    'Al2O3',   'K2O', 'Na2O',    'Fe2O3',   'TiO2',    'CaO', 'MgO', 'IL',  'TOTAL', 'Si/Al']
clay_1 = [65.54, 19.52, 0.63, 0.40, 2.58, 0.47, 1.28, 0.37, 9.02, 99.81]
clay_2 = [64.56, 18.33, 2.51, 0.38, 2.44, 0.56, 0.86, 0.63, 9.58, 99.85]
clay_black = [59.09,   18.36,     2.42,  0.40,  2.65,  0.73,  1.08,  0.47,  14.63,     99.83]
clay_fired = [74.22,   13.91, 1.03,  0.41,  1.80,  0.54,  1.91,  1.96,  4.02,  99.80]
clay_red = [62.03, 21.77, 1.60,  0.20,  3.29,  0.72,  1.00,  0.29,  8.91,  99.81]
feldspar = [70.27, 14.62, 4.08,    3.55,  1.63,  0.27,  2.41,  0.54,  2.50,  99.87]
talc = [44.76, 5.76,  0.47,  0.39,  4.75,  0.13,  2.71,  25.78, 15.07, 99.82]
lime = [0.99, 8.86,    1.32,  0.44,  2.47,  2.06,  44.21, 0.08,   37.66, 98.09]
silicate = [74.17, 16.06, 1.83,  1.37,  0.64,  0.14,  0.24,  0.18,  4.97,  99.60]
new_silicate = [96.52, 1.71,  0.15,  0.15,  0.09,  0.02,  0.04,  0.01,  0.65,  99.34]
dolomite = [25.68, 2.41,  0.36,  0.05,  0.42,  0.00,  29.21, 13.90, 27.93, 99.96]

raw_composition = ['clay_1', 'clay_2', 'clay_black', 'clay_fired', 'clay_red', 'feldspar', 'talc', 'lime',
                   'silicate', 'new_silicate', 'dolomite']

# 终端输入各种原料配比
p1 = float(input('请输入"一级土"百分比:'))
p2 = float(input('请输入"二级土"百分比:'))
p3 = float(input('请输入"黑泥"百分比:'))
p4 = float(input('请输入"煅烧土"百分比:'))
p5 = float(input('请输入"长石"百分比:'))
p6 = float(input('请输入"滑石"百分比:'))
p7 = float(input('请输入"石灰"百分比:'))
p8 = float(input('请输入"石英"百分比:'))
p9 = float(input('请输入"新石英"百分比:'))
p10 = float(input('请输入"白云石"百分比:'))
# 用百分比乘以各原料成分组成新列表
clay_1_p1 = [p1*a for a in clay_1]
clay_2_p2 = [p2*b for b in clay_2]
clay_black_p3 = [p3*c for c in clay_black]
clay_fired_p4 = [p4*d for d in clay_fired]
feldspar_p5 = [p5*e for e in feldspar]
talc_p6 = [p6*f for f in talc]
lime_p7 = [p7*g for g in lime]
silicate_p8 = [p8*h for h in silicate]
new_silicate_p9 = [p9*i for i in new_silicate]
dolomite_p10 = [p10*j for j in dolomite]

# composition = []      # 设置一个成分的空列表

composition = zip(clay_1_p1, clay_2_p2, clay_black_p3, clay_fired_p4, feldspar_p5, talc_p6, lime_p7,
                  silicate_p8, new_silicate_p9, dolomite_p10)
# zip函数从相同长度列表中提取同序号元素组成新的列表

map_composition = list(map(sum, composition))
# map 函数在zip函数基础上,运用sum求和函数,将不同列表中相同序号的元素求和后组成新的列表。
si_al = map_composition[0]/map_composition[1]
# 求硅铝比
map_composition.append(si_al)
# 将硅铝比加入到列表中
print(map_composition)
# print(clay_1_p1)

# wb=openpyxl.Workbook()
# ws=wb.active
# ws.title='analysis_pengsheng'

wb = openpyxl.load_workbook('analysis_pengsheng.xlsx')
ws = wb['analysis_pengsheng']
ws.append(element_)
ws.append(map_composition)
ws.append([time.strftime('%Y-%m-%d %H:%M:%S')])
ws.append(['------------------------------'])
# 字体设为微软雅黑,字体大小25,红色
font = Font(name=' 微软雅黑', size=14, italic=False, color='00000000', bold=True)
# 设置对应单元格的字体样式
ws['A1'].font = font
for i in range(ws.min_row, ws.max_row + 1):
    for cell in ws[i]:
        cell.font = font

# 填充样式,交单元格背景色填充为蓝色
fill = PatternFill(fill_type='solid', start_color='00FFFFFF', end_color='00000000')
ws['A2'].fill = fill
# 边框样式
border = Border(left=Side(border_style='double'),
                right=Side(border_style='double'),
                top=Side(border_style='double'),
                bottom=Side(border_style='double')

                )
ws['C1'].border = border
for i in range(ws.min_row, ws.max_row + 1):
    for cell in ws[i]:
        cell.border = border
# 单元格内容对齐
align = Alignment(horizontal='center', vertical='center', wrap_text=False)
ws['D1'].alignment = align

for i in range(ws.min_row, ws.max_row + 1):
    for cell in ws[i]:
        cell.alignment = align

# 第三行行高修改为25
for i in range(ws.min_row, ws.max_row + 1):
    ws.row_dimensions[i].height = 25
# A列列宽修改为30
list_cols = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']
for i in list_cols:
    for cell in ws[i]:
        ws.column_dimensions[i].width = 15
x = ws.max_row - 1
y = ws.max_column
ws.merge_cells(start_row=x, start_column=1, end_row=x, end_column=y)
ws.merge_cells(start_row=x + 1, start_column=1, end_row=x + 1, end_column=y)
wb.save('analysis_pengsheng.xlsx')
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到