Excel电子表格编程技能Skill excel-spreadsheets

该技能专注于使用Python的openpyxl库进行Excel电子表格的创建、修改和管理,特别适用于财务建模、量化金融分析和股票交易数据管理。关键词包括Excel自动化、openpyxl、财务模型、量化策略、数据分析、股票评估。

回测系统 0 次安装 0 次浏览 更新于 3/11/2026

名称: excel电子表格 描述: 使用openpyxl通过Bedrock Code Interpreter创建、修改和管理Excel电子表格。

Excel电子表格

何时使用

工具 使用时机
create_excel_spreadsheet 用户要求创建/生成新电子表格时
modify_excel_spreadsheet 用户要求编辑/更新现有电子表格时
list_my_excel_spreadsheets 用户询问可用的电子表格时
read_excel_spreadsheet 用户想要下载或读取电子表格内容时
preview_excel_sheets 编辑前检查实际工作表外观时

工作流程

  1. 修改前:调用preview_excel_sheets检查当前布局。
  2. 创建/修改后:调用preview_excel_sheets验证。
  3. 按顺序运行工具(切勿并行)以防止文件竞争条件。

专业格式化

  • 字体:除非现有模板指定其他字体,否则所有单元格使用Arial字体。
  • 负数:括号格式(1,234) — 不是减号-1,234
  • 货币$#,##0格式。在标题中指定单位(例如,“收入($百万)”)。
  • 百分比0.0%格式(一位小数)。
  • 年份:格式化为文本("2024"而不是"2,024")。
  • 零值:使用自定义数字格式显示为"-"
# 示例:专业数字格式化
from openpyxl.styles import numbers
ws['B2'].number_format = '$#,##0'          # 货币
ws['C2'].number_format = '0.0%'            # 百分比
ws['D2'].number_format = '#,##0;(#,##0)'   # 负数用括号
ws['E2'].number_format = '@'               # 年份作为文本
ws['F2'].number_format = '#,##0;(#,##0);"-"'  # 零值显示为短横线

财务模型颜色编码

构建财务模型时,应用以下约定:

颜色 十六进制 用途
蓝色文本 0000FF 硬编码输入和假设
黑色文本 000000 所有公式和计算
绿色文本 008000 从其他工作表拉取链接
黄色背景 FFFF00 需要关注的关键假设
from openpyxl.styles import Font, PatternFill
ws['B2'].font = Font(name='Arial', color='0000FF')       # 蓝色:输入
ws['B3'].font = Font(name='Arial', color='000000')       # 黑色:公式
ws['B4'].font = Font(name='Arial', color='008000')       # 绿色:跨工作表链接
ws['B5'].fill = PatternFill('solid', fgColor='FFFF00')   # 黄色背景:关键假设

图像

from openpyxl.drawing.image import Image
ws.add_image(Image('file.png'), 'E1')

代码规则

  • 工作簿预先初始化为wb = Workbook(),活动工作表为ws = wb.active(创建时),或加载为wb(修改时)。不要包含Workbook()wb.save()
  • 可用库:openpyxl、matplotlib、pandas、numpy(seaborn不可用)
  • 始终使用Excel公式,切勿硬编码计算值。
    • 错误:ws['B10'] = total
    • 正确:ws['B10'] = '=SUM(B2:B9)'
  • 将假设放在单独的单元格中,在公式中引用它们(例如,=B5*(1+$B$6)而不是=B5*1.05)。
  • 避免循环引用。
  • 文件名:仅使用字母、数字、连字符。

工具参考

create_excel_spreadsheet

使用openpyxl代码创建新的Excel电子表格。

参数 类型 是否必需 描述
python_code str 使用openpyxl的Python代码(参见上面的代码规则)
spreadsheet_name str 文件名(不带扩展名,仅使用字母、数字、连字符)

示例tool_input:

{
  "python_code": "ws.title = 'Sales'
ws['A1'] = 'Quarter'
ws['B1'] = 'Revenue'
for i, (q, r) in enumerate(zip(['Q1','Q2','Q3','Q4'], [100,150,130,180]), start=2):
    ws[f'A{i}'] = q
    ws[f'B{i}'] = r",
  "spreadsheet_name": "quarterly-sales"
}

警告:参数是spreadsheet_name,不是filenamename

modify_excel_spreadsheet

修改现有电子表格并用新名称保存。

参数 类型 是否必需 描述
source_name str 现有电子表格名称(不带.xlsx)
output_name str 新输出名称(必须与源不同)
python_code str 修改电子表格的Python代码

示例tool_input:

{
  "source_name": "quarterly-sales",
  "output_name": "quarterly-sales-v2",
  "python_code": "ws = wb.active
ws['B6'] = '=SUM(B2:B5)'"
}

list_my_excel_spreadsheets

列出工作空间中的所有电子表格。无需参数。

read_excel_spreadsheet

检索特定电子表格以下载。

参数 类型 是否必需
spreadsheet_name str

preview_excel_sheets

获取工作表截图以进行视觉检查后再编辑。

参数 类型 是否必需 描述
spreadsheet_name str 电子表格名称(不带扩展名)
sheet_names list[str] 要预览的工作表名称(空列表[]表示所有工作表)