mcpField
P
processing-excel-files

processing-excel-files

github.com/zgldhドキュメント8387 回インストール38 週間前に更新
リポジトリ

processing-excel-files について

Processing Excel Filesは、既存の書式を保ちながらxlsx-populateでExcelブックを編集・加工するJavaScriptスキルです。数式、スタイル、ワークシート、テンプレートを使ったレポートの作成に適しています。

主な機能

  1. 01書式を保ったブック編集
  2. 02数式とスタイルの追加
  3. 03ワークシートの作成と管理
  4. 04セルの結合と書式設定
  5. 05結果を別ファイルに出力

活用シーン

  1. 01書式付きExcelブックの更新
  2. 02既存レポートへの数式追加
  3. 03Excelテンプレートからのレポート作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/zgldh/xlsx-populate-skill --skill processing-excel-files

インストール後、Claude Code で/processing-excel-filesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

STYLES.md
BATCH-OPERATIONS.md
EXAMPLES.md
README.md
LICENSE
.gitignore
FORMULAS.md
package.json
examples/
basic-usage.js
excel-processor.js
quotation-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] で実際のシナリオを確認してください

ベストプラクティス

  1. 常にオリジナルを保持する:ソースファイルを上書きしないでください

    await workbook.toFileAsync('output.xlsx');  // ✅ New file
    // NOT: await workbook.toFileAsync('input.xlsx');  // ❌ Don't overwrite
    
  2. 計算には数式を使用する:Excel に計算させてください

    sheet.cell('B10').formula('=SUM(B2:B9)');  // ✅
    // NOT: sheet.cell('B10').value(calculateSum());  // ❌
    
  3. エラーを適切に処理する:

    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;

参考資料

コメント