processing-excel-files について
Processing Excel Filesは、既存の書式を保ちながらxlsx-populateでExcelブックを編集・加工するJavaScriptスキルです。数式、スタイル、ワークシート、テンプレートを使ったレポートの作成に適しています。
主な機能
- 01書式を保ったブック編集
- 02数式とスタイルの追加
- 03ワークシートの作成と管理
- 04セルの結合と書式設定
- 05結果を別ファイルに出力
活用シーン
- 01書式付きExcelブックの更新
- 02既存レポートへの数式追加
- 03Excelテンプレートからのレポート作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zgldh/ xlsx-populate-skill --skill processing-excel-filesインストール後、Claude Code で/processing-excel-filesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
STYLES.mdBATCH-OPERATIONS.mdEXAMPLES.mdREADME.mdLICENSE.gitignoreFORMULAS.mdpackage.jsonexamples/basic-usage.jsexcel-processor.jsquotation-editor.js詳細
Excel ファイルの処理
xlsx-populate ライブラリを使用して Excel ファイルを編集・操作し、元の書式を完全に保持します。
使用する場合
- 書式を崩さずに既存の Excel ファイルを編集したい場合
- 複雑なレイアウトや結合セルを含む .xlsx ファイルを扱う場合
- 既存のファイルに数式、スタイル、または新しいワークシートを追加する必要がある場合
- テンプレートから Excel レポートを作成する場合
使用しない場合
- Excel からデータを読み取るだけの場合(パフォーマンス向上のため、代わりに
xlsxライブラリを使用してください) - 書式を気にせず、シンプルな Excel ファイルをゼロから作成する場合
クイックスタート
const XlsxPopulate = require('xlsx-populate');
// Load and edit
const workbook = await XlsxPopulate.fromFileAsync('input.xlsx');
workbook.sheet(0).cell('A1').value('Updated');
await workbook.toFileAsync('output.xlsx');
インストール
npm install xlsx-populate
基本操作
1. 読み込みと書式の保持
const workbook = await XlsxPopulate.fromFileAsync('file.xlsx');
const sheet = workbook.sheet(0);
// All original formatting is preserved automatically
sheet.cell('A1').value('New Value');
await workbook.toFileAsync('output.xlsx');
2. 数式の追加
// Use formulas, not hardcoded values
sheet.cell('D10').formula('=SUM(D2:D9)');
sheet.cell('E5').formula('=(C5-B5)/B5'); // Growth rate
3. スタイルの適用
sheet.cell('A1').style({
bold: true,
fontSize: 14,
fill: '4472C4',
fontColor: 'FFFFFF'
});
4. ワークシートの管理
// Add new sheet
const newSheet = workbook.addSheet('Summary');
// Reorder sheets
workbook.sheets()[2].move(0);
// Rename sheet
workbook.sheet(0).name('Cover Page');
5. セルの結合
sheet.range('A1:D1').merged(true);
sheet.range('A1:D1').style({
horizontalAlignment: 'center'
});
高度なパターン
データの一括書き込み:[BATCH-OPERATIONS.md] で大規模なデータセットの処理方法を確認してください
数式のパターン:[FORMULAS.md] で財務モデリングの標準を確認してください
スタイルガイド:[STYLES.md] で配色と書式設定を確認してください
完全な例:[EXAMPLES.md] で実際のシナリオを確認してください
ベストプラクティス
-
常にオリジナルを保持する:ソースファイルを上書きしないでください
await workbook.toFileAsync('output.xlsx'); // ✅ New file // NOT: await workbook.toFileAsync('input.xlsx'); // ❌ Don't overwrite -
計算には数式を使用する:Excel に計算させてください
sheet.cell('B10').formula('=SUM(B2:B9)'); // ✅ // NOT: sheet.cell('B10').value(calculateSum()); // ❌ -
エラーを適切に処理する:
try { const workbook = await XlsxPopulate.fromFileAsync('file.xlsx'); // ... operations await workbook.toFileAsync('output.xlsx'); } catch (error) { console.error('Excel operation failed:', error.message); }
よくある問題
Q:ファイルサイズが大幅に増加しました。
A:正常です。xlsx-populate はより多くのメタデータを保持します。ファイルサイズが重要な場合は、xlsx ライブラリを使用してください。
Q:数式が計算されません。
A:数式は保持されますが、Excel で開いたときに計算されます。計算済みの値を読み取るには、data_only=True を使用してください。
Q:結合セルを確認するにはどうすればよいですか?
A:const merges = sheet._mergeCells;
参考資料
- xlsx-populate GitHub
- ライブラリのドキュメント:
node_modules/xlsx-populate/docs/