讲师中心 微信公众号
AI工具推荐 视频效率加速

Excel Studio

Polar Sponsor
爱发电 赞助
.NET 9.0

专业Excel电子表格生成器。当用户需要创建数据表、报告、图表、财务模型或任何Excel格式的结构化数据时使用。

Excel Studio. 专业 Excel 电子表格生成器, 带有完整格式、 图表、 公式和多表支持..

功能概述

Excel Studio. 专业 Excel 电子表格生成器, 带有完整格式、 图表、 公式和多表支持..是一项面向实际任务的技能,主要用于FeaturesQQ 多种格式 : 输出为 . xlsx, . xls, 或. csvXQQ 图表和图。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Excel Studio

Professional Excel spreadsheet generator with full formatting, charts, formulas, and multi-sheet support.

Features

  • 📊 Multi-Format: Output as .xlsx, .xls, or .csv
  • 📈 Charts & Graphs: Bar, line, pie, scatter charts
  • 🔢 Formulas: SUM, AVERAGE, VLOOKUP, and more
  • 🎨 Professional Formatting: Colors, fonts, borders, alignment
  • 📑 Multi-Sheet: Multiple worksheets with cross-references
  • 🌍 Multi-Language: Chinese, English, Japanese, etc.
  • ✅ Cross-Platform: Windows, macOS, Linux
  • 📱 Excel Compatible: Works with Excel, WPS, LibreOffice

Trigger Conditions

  • "帮我做Excel" / "Create an Excel file"
  • "生成表格" / "Generate spreadsheet"
  • "做数据分析" / "Create data analysis"
  • "制作财务报表" / "Create financial report"
  • "excel-studio"

Document Types

Business (商务)

  • 销售报表
  • 财务报表
  • 预算表
  • 库存管理
  • 项目跟踪

Data Analysis (数据分析)

  • 数据汇总
  • 数据透视
  • 趋势分析
  • 对比分析

Financial (财务)

  • 资产负债表
  • 利润表
  • 现金流量表
  • 预算对比

Personal (个人)

  • 记账本
  • 日程表
  • 成绩单
  • 清单

Step 1: Understand Requirements

请提供以下信息:

文档类型:(报表/数据分析/财务/其他)
格式要求:(xlsx/xls/csv)
Sheet数量:
数据内容:
图表需求:(柱状图/折线图/饼图/无)
语言:(中文/英文)
特殊要求:(公式/条件格式/数据验证等)

Step 2: Generate Excel

Python Script Template

python3 << 'PYEOF'
import os
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side, numbers
from openpyxl.chart import BarChart, LineChart, PieChart, Reference
from openpyxl.utils import get_column_letter
from datetime import datetime

class ExcelGenerator:
    def __init__(self):
        self.wb = Workbook()
        self.sheets = {}
        
    def add_sheet(self, name, active=False):
        """Add a new worksheet"""
        if active:
            ws = self.wb.active
            ws.title = name
        else:
            ws = self.wb.create_sheet(name)
        self.sheets[name] = ws
        return ws
    
    def get_sheet(self, name):
        """Get worksheet by name"""
        return self.sheets.get(name, self.wb.active)
    
    def set_cell(self, sheet_name, row, col, value, format_type=None):
        """Set cell value with optional formatting"""
        ws = self.get_sheet(sheet_name)
        cell = ws.cell(row=row, column=col, value=value)
        
        if format_type:
            self.apply_format(cell, format_type)
        
        return cell
    
    def apply_format(self, cell, format_type):
        """Apply formatting to cell"""
        formats = {
            'header': {
                'font': Font(bold=True, size=12, color='FFFFFF'),
                'fill': PatternFill(start_color='3182CE', end_color='3182CE', fill_type='solid'),
                'alignment': Alignment(horizontal='center', vertical='center')
            },
            'title': {
                'font': Font(bold=True, size=16),
                'alignment': Alignment(horizontal='center')
            },
            'number': {
                'number_format': '#,##0.00'
            },
            'percent': {
                'number_format': '0.00%'
            },
            'date': {
                'number_format': 'YYYY-MM-DD'
            },
            'currency': {
                'number_format': '¥#,##0.00'
            },
            'border': {
                'border': Border(
                    left=Side(style='thin'),
                    right=Side(style='thin'),
                    top=Side(style='thin'),
                    bottom=Side(style='thin')
                )
            }
        }
        
        if format_type in formats:
            for key, value in formats[format_type].items():
                setattr(cell, key, value)
    
    def write_table(self, sheet_name, start_row, start_col, headers, data, 
                    header_format=True, border=True):
        """Write a formatted table"""
        ws = self.get_sheet(sheet_name)
        
        # Write headers
        if headers:
            for i, header in enumerate(headers):
                cell = ws.cell(row=start_row, column=start_col + i, value=header)
                if header_format:
                    self.apply_format(cell, 'header')
                if border:
                    self.apply_format(cell, 'border')
        
        # Write data
        for row_idx, row_data in enumerate(data, start=start_row + 1):
            for col_idx, value in enumerate(row_data, start=start_col):
                cell = ws.cell(row=row_idx, column=col_idx, value=value)
                if border:
                    self.apply_format(cell, 'border')
                
                # Auto-format numbers
                if isinstance(value, (int, float)):
                    cell.number_format = '#,##0.00'
        
        return start_row, start_col, start_row + len(data), start_col + len(headers) - 1
    
    def add_chart(self, sheet_name, chart_type, data_range, title, 
                  categories_range=None, position='E2'):
        """Add a chart to the sheet"""
        ws = self.get_sheet(sheet_name)
        
        charts = {
            'bar': BarChart(),
            'line': LineChart(),
            'pie': PieChart()
        }
        
        chart = charts.get(chart_type, BarChart())
        chart.title = title
        chart.style = 10
        
        # Add data
        data = Reference(ws, min_col=data_range[0], min_row=data_range[1],
                        max_col=data_range[2], max_row=data_range[3])
        chart.add_data(data, titles_from_data=True)
        
        # Add categories if provided
        if categories_range:
            cats = Reference(ws, min_col=categories_range[0], 
                           min_row=categories_range[1],
                           max_col=categories_range[2], 
                           max_row=categories_range[3])
            chart.set_categories(cats)
        
        # Add chart to sheet
        ws.add_chart(chart, position)
        
        return chart
    
    def set_column_width(self, sheet_name, col, width):
        """Set column width"""
        ws = self.get_sheet(sheet_name)
        ws.column_dimensions[get_column_letter(col)].width = width
    
    def auto_column_width(self, sheet_name):
        """Auto-adjust column widths"""
        ws = self.get_sheet(sheet_name)
        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 = min(max_length + 2, 50)
            ws.column_dimensions[column].width = adjusted_width
    
    def add_formula(self, sheet_name, row, col, formula):
        """Add a formula to a cell"""
        ws = self.get_sheet(sheet_name)
        ws.cell(row=row, column=col, value=formula)
    
    def merge_cells(self, sheet_name, start_row, start_col, end_row, end_col):
        """Merge cells"""
        ws = self.get_sheet(sheet_name)
        ws.merge_cells(start_row=start_row, start_column=start_col,
                      end_row=end_row, end_column=end_col)
    
    def save(self, output_path):
        """Save workbook"""
        self.wb.save(output_path)
        return output_path

# Example: Create a sales report
def create_sales_report():
    gen = ExcelGenerator()
    
    # Sheet 1: Sales Data
    ws1 = gen.add_sheet('销售数据', active=True)
    
    # Title
    gen.merge_cells('销售数据', 1, 1, 1, 6)
    title_cell = gen.set_cell('销售数据', 1, 1, '2026年第一季度销售报告')
    gen.apply_format(title_cell, 'title')
    
    # Headers
    headers = ['月份', '产品A', '产品B', '产品C', '总计', '增长率']
    gen.write_table('销售数据', 3, 1, headers, [])
    
    # Data
    data = [
        ['1月', 150000, 230000, 180000, None, None],
        ['2月', 180000, 250000, 200000, None, None],
        ['3月', 220000, 280000, 230000, None, None],
    ]
    
    for i, row in enumerate(data, start=4):
        for j, value in enumerate(row, start=1):
            gen.set_cell('销售数据', i, j, value)
    
    # Add formulas
    for row in range(4, 7):
        gen.add_formula('销售数据', row, 5, f'=SUM(B{row}:D{row})')
        if row > 4:
            gen.add_formula('销售数据', row, 6, f'=(E{row}-E{row-1})/E{row-1}')
    
    # Total row
    gen.set_cell('销售数据', 7, 1, '总计')
    gen.apply_format(gen.get_sheet('销售数据').cell(row=7, column=1), 'header')
    for col in range(2, 6):
        gen.add_formula('销售数据', 7, col, f'=SUM({get_column_letter(col)}4:{get_column_letter(col)}6)')
    
    # Auto-width
    gen.auto_column_width('销售数据')
    
    # Add chart
    gen.add_chart('销售数据', 'bar', (1, 3, 4, 6), '月度销售对比',
                 categories_range=(1, 4, 1, 6), position='A9')
    
    # Sheet 2: Summary
    ws2 = gen.add_sheet('汇总分析')
    gen.set_cell('汇总分析', 1, 1, '产品销售占比')
    gen.apply_format(gen.get_sheet('汇总分析').cell(row=1, column=1), 'title')
    
    summary_headers = ['产品', '销售额', '占比']
    gen.write_table('汇总分析', 3, 1, summary_headers, [])
    
    summary_data = [
        ['产品A', 550000, None],
        ['产品B', 760000, None],
        ['产品C', 610000, None],
    ]
    
    for i, row in enumerate(summary_data, start=4):
        gen.set_cell('汇总分析', i, 1, row[0])
        gen.set_cell('汇总分析', i, 2, row[1])
        gen.add_formula('汇总分析', i, 3, f'=B{i}/SUM(B4:B6)')
        gen.apply_format(gen.get_sheet('汇总分析').cell(row=i, column=3), 'percent')
    
    # Add pie chart
    gen.add_chart('汇总分析', 'pie', (1, 3, 2, 6), '产品销售占比',
                 position='A8')
    
    return gen

# Generate
output_dir = os.environ.get('OPENCLAW_WORKSPACE', os.getcwd())
output_path = os.path.join(output_dir, 'sales_report.xlsx')

gen = create_sales_report()
gen.save(output_path)

print(f"✅ Excel已生成:{output_path}")
print(f"")
print(f"📊 包含内容:")
print(f"   - 2个工作表(销售数据/汇总分析)")
print(f"   - 专业格式(表头/边框/数字格式)")
print(f"   - 自动公式(SUM/增长率)")
print(f"   - 柱状图+饼图")
print(f"   - 自动列宽调整")
PYEOF

Format Types (格式类型)

Cell Formats

FORMATS = {
    # 对齐
    'center': Alignment(horizontal='center', vertical='center'),
    'left': Alignment(horizontal='left'),
    'right': Alignment(horizontal='right'),
    
    # 数字格式
    'number': '#,##0.00',
    'integer': '#,##0',
    'percent': '0.00%',
    'currency': '¥#,##0.00',
    'date': 'YYYY-MM-DD',
    'datetime': 'YYYY-MM-DD HH:MM:SS',
    
    # 字体
    'bold': Font(bold=True),
    'title': Font(bold=True, size=16),
    'header': Font(bold=True, size=12, color='FFFFFF'),
    
    # 填充
    'blue_fill': PatternFill(start_color='3182CE', fill_type='solid'),
    'green_fill': PatternFill(start_color='48BB78', fill_type='solid'),
    'red_fill': PatternFill(start_color='F56565', fill_type='solid'),
    'yellow_fill': PatternFill(start_color='ECC94B', fill_type='solid'),
}

Chart Types (图表类型)

类型 代码 适用场景
柱状图 bar 对比数据
折线图 line 趋势分析
饼图 pie 占比分析
散点图 scatter 相关性

Formula Support (公式支持)

Common Formulas

# 求和
'=SUM(A1:A10)'

# 平均值
'=AVERAGE(A1:A10)'

# 最大/最小
'=MAX(A1:A10)'
'=MIN(A1:A10)'

# 计数
'=COUNT(A1:A10)'
'=COUNTA(A1:A10)'

# 条件
'=IF(A1>100, "高", "低")'

# 查找
'=VLOOKUP(A1, B:C, 2, FALSE)'

# 百分比变化
'=(B1-A1)/A1'

Multi-Sheet Operations (多Sheet操作)

Cross-Sheet Reference

# 引用其他Sheet的数据
'=Sheet1!A1'

# 跨Sheet求和
'=SUM(Sheet1:Sheet3!A1)'

# 条件汇总
'=SUMIF(Sheet1!A:A, "条件", Sheet1!B:B)'

Security Notes

  • ✅ No network calls or external endpoints
  • ✅ No credentials or API keys required
  • ✅ Local file processing only
  • ✅ Open source dependencies (openpyxl, xlwt)
  • ✅ No data uploaded to external servers

Notes

  • 使用openpyxl支持.xlsx格式
  • 使用xlwt支持.xls格式
  • CSV使用内置csv模块
  • 支持中文和其他Unicode字符
  • 跨平台兼容Excel/WPS/LibreOffice
目录

热门AI工具

更多
Flowith
Flowith Hot

Flowith是一款基于画布和智能体工作流的 AI 协作工作空间。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
Excel制作交互图表的方法 Excel交互式的图表教程大全
Excel制作交互图表的方法 Excel交互式的图表教程大全

Excel交互式图表可通过四种方法实现:一、用切片器控制数据透视图;二、结合下拉列表与INDEX-MATCH动态引用;三、用选项按钮绑定图表系列;四、利用动态命名区域配合OFFSET函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1820

2026.01.04

excel制作动态图表教程
excel制作动态图表教程

本专题整合了excel制作动态图表相关教程,阅读专题下面的文章了解更多详细教程。

205

2025.12.29

Excel图表制作全流程
Excel图表制作全流程

本专题整合了excel制作图表的相关教程,阅读专题下面的文章了解更多详细内容。

240

2025.12.23

excel xls与xlsx的区别
excel xls与xlsx的区别

本专题整合了excel中xls与xlsx的区别,阅读专题下面的文章了解更多详细内容。

357

2025.12.23

excel 绝对值
excel 绝对值

本专题整合了excel绝对值相关教程,阅读专题下面的文章了解更多详细内容。

839

2025.12.09

Excel如何制作一个动态交互式图表
Excel如何制作一个动态交互式图表

首先通过准备数据源并创建基础图表,再插入表单控件实现用户交互,接着使用INDEX公式提取对应数据,然后将图表数据源指向动态区域,最后优化布局与标题实现动态更新。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1738

2025.11.28

excel算方差教程
excel算方差教程

计算方差的步骤依次为:1. 计算平均值;2. 计算差异的平方;3. 求和平方值;4. 除以数据点数。想要了解更多相关内容,请阅读专题下面的文章。

4049

2025.05.27

怎么用excel制作标签
怎么用excel制作标签

用 Excel 制作标签,若为普通工作表标签,可右键单击标签选 “重命名” 来修改名称;选 “标签颜色” 设置颜色用于区分。若制作数据标签,比如地址标签,先在 Excel 整理好数据,再借助 Word 的邮件合并功能。在 Word 中依次操作:“邮件” 选项卡→“开始邮件合并”→“标签”,选好标签类型,导入 Excel 数据并设置格式,完成后打印 。

6551

2025.04.14

excel提取想要的数据
excel提取想要的数据

提取方法有很多种。直接定位:使用“定位”功能选择所需数据。筛选:根据条件筛选数据,显示满足条件的单元格。条件格式:突出显示满足特定条件的数据单元格。高级筛选:指定条件,将提取的数据粘贴到目标范围。公式:使用 index、if、sumif、countif 等函数从数据中提取值。vba 宏:编写脚本以自动提取数据,满足特定条件。

5430

2025.01.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 45.3万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn