ai_member_xiaoban/generate_excel.py
2026-04-15 08:10:01 +08:00

167 lines
6.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
# 创建工作簿
wb = Workbook()
wb.remove(wb.active) # 删除默认sheet
# ================== Sheet1: 基本信息 ==================
ws1 = wb.create_sheet("基本信息")
ws1.append(["字段", "内容"])
basic_info = [
["学员ID", "1185"],
["学习级别", "Level 1"],
["已学单元", "Unit49 ~ Unit54共6个单元"],
["学习周期", "2025年6月 ~ 2026年4月11日"],
["总有效学习时长", "约62分钟平均每单元10~15分钟"]
]
for row in basic_info:
ws1.append(row)
# 样式设置
header_fill = PatternFill(start_color="FFC000", end_color="FFC000", fill_type="solid")
for col in range(1, 3):
cell = ws1.cell(row=1, column=col)
cell.font = Font(bold=True)
cell.fill = header_fill
cell.alignment = Alignment(horizontal="center")
# ================== Sheet2: 整体学习概览 ==================
ws2 = wb.create_sheet("整体学习概览")
ws2.append(["字段", "内容"])
overview = [
["总互动答题次数", "644次覆盖20+种题型)"],
["已掌握核心知识点", "182个单词+句型)"],
["单元整体掌握率", "88%(良好水平)"],
["单元挑战完成情况", "听力6次全Perfect口语6次2Perfect/2Good/2Oops"]
]
for row in overview:
ws2.append(row)
for col in range(1, 3):
cell = ws2.cell(row=1, column=col)
cell.font = Font(bold=True)
cell.fill = header_fill
cell.alignment = Alignment(horizontal="center")
# ================== Sheet3: 互动组件表现 ==================
ws3 = wb.create_sheet("互动组件表现")
ws3.append(["结果等级", "数量", "占比"])
interactive = [
["Perfect", 437, "67.8%"],
["Good", 78, "12.1%"],
["Pass", 102, "15.8%"],
["Oops", 15, "2.3%"],
["Failed", 12, "1.9%"]
]
for row in interactive:
ws3.append(row)
for col in range(1, 4):
cell = ws3.cell(row=1, column=col)
cell.font = Font(bold=True)
cell.fill = header_fill
cell.alignment = Alignment(horizontal="center")
# ================== Sheet4: 薄弱知识点 ==================
ws4 = wb.create_sheet("薄弱知识点")
ws4.append(["知识点英文", "中文意思", "错误占比"])
weak_points = [
["carrot", "胡萝卜", "33.3%"],
["story", "故事", "25%"],
["right", "右边", "30%"],
["dirty", "脏的", "33.3%"],
["coconut", "椰子", "33.3%"],
["favourite", "最喜欢的", "33.3%"]
]
for row in weak_points:
ws4.append(row)
for col in range(1, 4):
cell = ws4.cell(row=1, column=col)
cell.font = Font(bold=True)
cell.fill = header_fill
cell.alignment = Alignment(horizontal="center")
# ================== Sheet5: 单元挑战表现 ==================
ws5 = wb.create_sheet("单元挑战表现")
ws5.append(["题型", "测试次数", "Perfect次数", "Good次数", "Oops次数", "整体表现"])
challenge = [
["听力", 6, 6, 0, 0, "🌟 满分水平,听音辨音、听力理解能力极强"],
["口语", 6, 2, 2, 2, "📈 良好水平发音准确率约80%,句子完整度有待提升"]
]
for row in challenge:
ws5.append(row)
for col in range(1, 7):
cell = ws5.cell(row=1, column=col)
cell.font = Font(bold=True)
cell.fill = header_fill
cell.alignment = Alignment(horizontal="center")
# ================== Sheet6: 优势总结 ==================
ws6 = wb.create_sheet("优势总结")
ws6.append(["序号", "优势内容"])
strengths = [
[1, "听力能力突出所有单元听力挑战全满分对语音、语调、连读的识别准确率100%"],
[2, "基础单词掌握牢固85%的核心单词Perfect比例100%,词义、发音记忆扎实"],
[3, "学习韧性强所有Oops/Failed题目最终都通过多次尝试完成无放弃作答情况"],
[4, "核心句型掌握稳定90%以上的常用句型问候、询问、指令等掌握率100%,能够准确理解和应用"]
]
for row in strengths:
ws6.append(row)
for col in range(1, 3):
cell = ws6.cell(row=1, column=col)
cell.font = Font(bold=True)
cell.fill = header_fill
cell.alignment = Alignment(horizontal="center")
# ================== Sheet7: 待提升方向 ==================
ws7 = wb.create_sheet("待提升方向")
ws7.append(["序号", "提升方向"])
improve = [
[1, "口语表达完整度2次口语挑战Oops均因为句子表述不完整遗漏核心成分"],
[2, "发音准确率部分长单词如coconut、favourite发音准确率低于70%"],
[3, "生僻词记忆:低频出现的名词类单词遗忘率较高,需要定期复习"],
[4, "句子结构排序:巩固练习中句子排序题错误率较高,对句型结构的熟练度有待加强"]
]
for row in improve:
ws7.append(row)
for col in range(1, 3):
cell = ws7.cell(row=1, column=col)
cell.font = Font(bold=True)
cell.fill = header_fill
cell.alignment = Alignment(horizontal="center")
# ================== Sheet8: 个性化学习建议 ==================
ws8 = wb.create_sheet("个性化学习建议")
ws8.append(["序号", "建议内容"])
suggestions = [
[1, "口语强化训练每天花5分钟做句子跟读练习重点训练完整句子的流利度和完整度每次录音后对照参考答案自查"],
[2, "单词复习计划每周复习1次当月所学生僻单词每次10分钟采用闪卡记忆法强化"],
[3, "句型专项训练每天做3道句子排序题连续练习2周强化句型结构记忆"],
[4, "发音纠正针对发音准确率低的单词每天跟读3遍对比标准发音调整口型和语调"]
]
for row in suggestions:
ws8.append(row)
for col in range(1, 3):
cell = ws8.cell(row=1, column=col)
cell.font = Font(bold=True)
cell.fill = header_fill
cell.alignment = Alignment(horizontal="center")
# 调整列宽
for ws in wb.worksheets:
for col in ws.columns:
max_length = 0
column = col[0].column_letter
for cell in col:
try:
if len(str(cell.value)) > max_length:
max_length = len(str(cell.value))
except:
pass
adjusted_width = (max_length + 2) * 1.2
ws.column_dimensions[column].width = adjusted_width
# 保存文件
output_path = "/root/.openclaw/workspace-xiaoban/user_1185_study_analysis_report.xlsx"
wb.save(output_path)
print(f"Excel报告已生成保存路径{output_path}")