excel-processor

ntaksh42's avatarfrom ntaksh42

Process Excel files with data manipulation, formula generation, and chart creation. Use when working with spreadsheets or Excel data.

0stars🔀1forks📁View on GitHub🕐Updated Dec 20, 2025

When & Why to Use This Skill

This Claude skill provides comprehensive capabilities for automated Excel file processing, including advanced data manipulation, dynamic formula generation, and professional chart creation. It streamlines spreadsheet workflows by enabling programmatic control over cell styling, pivot tables, and seamless data conversion between XLSX, CSV, and JSON formats, making it an essential tool for data-driven automation.

Use Cases

  • Automated Financial Reporting: Generate detailed monthly sales or financial reports complete with automated summaries, pivot tables, and visual charts.
  • Data Cleaning and Transformation: Efficiently process and reformat large datasets from raw CSV or JSON sources into structured, styled Excel workbooks.
  • Dynamic Formula Injection: Automatically apply complex Excel formulas like VLOOKUP, SUMIFS, and conditional logic across thousands of rows to ensure calculation accuracy.
  • Bulk Document Generation: Create multiple customized invoices, statements, or inventory lists with specific branding, conditional formatting, and data validation rules.
nameexcel-processor
descriptionProcess Excel files with data manipulation, formula generation, and chart creation. Use when working with spreadsheets or Excel data.

Excel Processor Skill

Excelファイルの作成、編集、解析を行うスキルです。

概要

Excelの読み書き、数式、グラフ、スタイル設定を自動化します。

主な機能

  • データ読み書き: セル、行、列の操作
  • 数式: SUM、VLOOKUP等の自動生成
  • グラフ: 折れ線、棒、円グラフ
  • スタイル: 色、フォント、罫線
  • 条件付き書式: ルールベースの書式
  • ピボットテーブル: 集計表作成
  • CSV/JSON変換: データ変換

使用方法

Python (openpyxl)

from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, PatternFill
from openpyxl.chart import BarChart, Reference

# 新規作成
wb = Workbook()
ws = wb.active
ws.title = "Sales Data"

# データ入力
ws['A1'] = "Product"
ws['B1'] = "Sales"
ws.append(["iPhone", 1000])
ws.append(["MacBook", 800])

# スタイル設定
ws['A1'].font = Font(bold=True)
ws['A1'].fill = PatternFill(start_color="FFFF00", fill_type="solid")

# グラフ作成
chart = BarChart()
data = Reference(ws, min_col=2, min_row=1, max_row=3)
cats = Reference(ws, min_col=1, min_row=2, max_row=3)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
ws.add_chart(chart, "D1")

wb.save("sales.xlsx")

# 読み込み
wb = load_workbook("sales.xlsx")
ws = wb.active
for row in ws.iter_rows(values_only=True):
    print(row)

JavaScript (ExcelJS)

const ExcelJS = require('exceljs');

async function createExcel() {
  const workbook = new ExcelJS.Workbook();
  const worksheet = workbook.addWorksheet('Sales');

  // ヘッダー
  worksheet.columns = [
    { header: 'Product', key: 'product', width: 15 },
    { header: 'Sales', key: 'sales', width: 10 }
  ];

  // データ
  worksheet.addRow({ product: 'iPhone', sales: 1000 });
  worksheet.addRow({ product: 'MacBook', sales: 800 });

  // スタイル
  worksheet.getRow(1).font = { bold: true };
  worksheet.getRow(1).fill = {
    type: 'pattern',
    pattern: 'solid',
    fgColor: { argb: 'FFFFFF00' }
  };

  // 数式
  worksheet.getCell('B4').value = { formula: 'SUM(B2:B3)' };

  await workbook.xlsx.writeFile('sales.xlsx');
}

データ分析 (pandas)

import pandas as pd

# 読み込み
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

# 分析
summary = df.groupby('Category')['Sales'].sum()

# 書き込み
with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer:
    df.to_excel(writer, sheet_name='Data', index=False)
    summary.to_excel(writer, sheet_name='Summary')

高度な機能

from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.chart import LineChart, Reference

# データフレームから
import pandas as pd
df = pd.DataFrame({
    'Month': ['Jan', 'Feb', 'Mar'],
    'Sales': [100, 150, 120]
})

wb = Workbook()
ws = wb.active
for r in dataframe_to_rows(df, index=False, header=True):
    ws.append(r)

# 条件付き書式
from openpyxl.formatting.rule import ColorScaleRule
ws.conditional_formatting.add('B2:B4',
    ColorScaleRule(start_type='min', start_color='AA0000',
                   end_type='max', end_color='00AA00'))

# 数式
ws['B5'] = '=AVERAGE(B2:B4)'
ws['B6'] = '=MAX(B2:B4)'

wb.save('advanced.xlsx')

ライブラリ

Python

  • openpyxl: .xlsx読み書き
  • xlrd/xlwt: .xls (旧形式)
  • pandas: データ分析
  • xlsxwriter: 高速書き込み

JavaScript

  • ExcelJS: 完全機能
  • xlsx: SheetJS、読み込み特化
  • node-xlsx: シンプル

Go

  • excelize: 高性能

Java

  • Apache POI: 標準ライブラリ

バージョン情報

  • スキルバージョン: 1.0.0
  • 最終更新: 2025-01-22