excel-processor
Process Excel files with data manipulation, formula generation, and chart creation. Use when working with spreadsheets or Excel data.
When & Why to Use This Skill
This Claude skill empowers users to automate complex Excel file operations, including advanced data manipulation, dynamic formula generation, and professional chart creation. It streamlines spreadsheet workflows by supporting tasks like pivot table generation, conditional formatting, and seamless conversion between CSV, JSON, and Excel formats, making it an essential tool for data analysts and developers looking to automate repetitive office tasks.
Use Cases
- Automated Financial Reporting: Generate comprehensive sales or financial reports with automated charts and pivot tables directly from raw datasets to save time on manual entry.
- Data Cleaning & Migration: Efficiently clean, format, and migrate data between different formats like CSV, JSON, and Excel while maintaining styling and data integrity.
- Complex Formula Automation: Programmatically inject and calculate complex Excel formulas such as VLOOKUP, SUMIFS, and custom logic across thousands of rows in a workbook.
- Dynamic Dashboard Generation: Create visually appealing business dashboards with conditional formatting and custom styling to highlight key performance indicators (KPIs) and trends.
| name | excel-processor |
|---|---|
| description | Process 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