mcpField
E
easyexcel-write

easyexcel-write

github.com/full-stack-skillsドキュメント772 回インストール4 週間前に更新
リポジトリ

easyexcel-write について

easyexcel-write は、EasyExcel でテンプレートを使わずにオブジェクトや Map から Excel を生成する Java 開発者向けスキルです。ヘッダー、スタイル、セル結合、画像、複数シートなどの書き込み方法を扱います。

主な機能

  1. 01オブジェクトや Map から Excel を生成
  2. 02複雑または動的なヘッダーの設定
  3. 03出力列と書式の選択
  4. 04スタイルのカスタマイズとセル結合
  5. 05画像、数式、リッチテキストの出力
  6. 06複数シートと Web 出力に対応

活用シーン

  1. 01注文、ユーザー、財務データのエクスポート
  2. 02実行時データに基づくヘッダー生成
  3. 03画像や数式を含むシートの作成
  4. 04Web レスポンスでの Excel ダウンロード提供

インストール

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

$npx skills add https://github.com/full-stack-skills/java-skills --skill easyexcel-write

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

同梱ファイル

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

agents/
openai.yaml
examples/advanced/
15-hyperlink.md
16-comment.md
17-formula.md
18-rich-text.md
examples/annotation/
04-complex-head.md
05-converter.md
06-width-height.md
07-index-data.md
examples/async/
25-async-task.md
examples/bigdata/
24-page-write.md
examples/business/
29-user-export.md
30-finance-stock.md
examples/conversion/
27-custom-converter.md
examples/dynamic/
26-dynamic-head.md
examples/error-handling/
28-validator.md
examples/image/
13-image-demo.md
14-multi-image.md
examples/merge/
11-annotation.md
12-strategy.md
examples/multi-sheet/
21-repeated-same.md
22-different-classes.md
23-table.md
examples/simple/
01-demo-data.md
02-three-ways.md
03-exclude-include.md
examples/style/
08-annotation-style.md
09-strategy.md
10-auto-width.md
examples/web/
19-controller.md

詳細

EasyExcel データ書き込み(Write)

公式ドキュメント:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write 公式サンプル:https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java 現在のバージョン:com.alibaba:easyexcel:4.0.3(Apache-2.0、リポジトリはアーカイブ済みで、バグ修正のみ)

このスキルは、**「プログラムによる Excel の生成」**に特化しています。ユーザーが事前に用意したテンプレートを持たず、Java オブジェクトや Map から構造化された Excel(注文、ユーザー、財務、在庫、レポート、照合明細、承認書)を直接生成するよう求める場合は、このスキルを使用してください。

対応範囲

✅ 得意分野
  1. 最小限の書き込み(JDK8+ の書き方、従来の書き方、Builder の書き方)
  2. 複雑なヘッダー(複数レベルのヘッダー @ExcelProperty({"主标题", "副标题"}))
  3. 列を選択してエクスポート(includeColumnFiledNames / excludeColumnFiledNames)
  4. アノテーションによる書式定義(@ColumnWidth @ContentRowHeight @DateTimeFormat @NumberFormat)
  5. カスタムスタイル(アノテーション方式 / インターセプター方式 / HorizontalCellStyleStrategy)
  6. セルの結合(@ContentLoopMerge / LoopMergeStrategy)
  7. 画像のエクスポート(File/InputStream/URL/byte[] など、複数のソース)
  8. ハイパーリンク/コメント/数式/リッチテキスト(WriteCellData 系)
  9. 動的ヘッダー(実行時にヘッダーを決定)
  10. 複数回の書き込み/複数の Sheet/複数の Table
  11. HttpServletResponse への Web からの直接出力
⚠️ 制限事項
  1. 1 つの Sheet に対する一括書き込みは 5000 行未満を推奨します(データ量が多い場合は分割してください)
  2. スタイルオブジェクトは最大 6W 個までです。それを超えると Excel を開けなくなります
  3. 画像はメモリに保持されます。非常に大きな画像は OSS へのアップロードを推奨します
  4. コメントには inMemory(true) が必要です
  5. 03 版(.xls)との互換性には excelType(ExcelTypeEnum.XLS) を使用してください
❌ 対象外(このスキルを使うべきではないシナリオ。ほかのスキルを使用してください)
  1. 事前に用意したテンプレートへの入力 → このスキルは適していません。easyexcel-fill を使用してください
  2. Excel データの読み取り → このスキルは適していません。easyexcel-read を使用してください
  3. CSV ファイルの処理 → このスキルは適していません。commons-csv / OpenCSV をご自身で使用してください
  4. Word/PPT → このスキルは適していません。Apache POI / Apache POI-XML を使用してください

データプライバシー

このスキルは、ユーザーデータを収集、保存、送信しません。コード例はすべて、ローカル開発の参考用です。

このスキルを使用する場面

  • ユーザーが「Excel をエクスポート」「Excel を生成」「Excel をダウンロード」「注文/ユーザー/財務/在庫をエクスポート」と言った場合
  • 事前に用意したテンプレートがなく、プログラムによる構造化された Excel の生成が必要な場合
  • 業務上、「Sheet を分ける(月別/ステータス別/種類別)」「Table を分ける(複数の表ブロック)」などの要件がある場合
  • 画像、ハイパーリンク、数式、リッチテキスト、セルの結合をエクスポートする必要がある場合

クイックスタート

一般的な呼び出し方法(3 種類の書き方):

// 写法 1:JDK8+ 用 Supplier(since 3.0.0-beta1,最简洁)
EasyExcel.write(fileName, DemoData.class)
    .sheet("模板")
    .doWrite(() -> data());

// 写法 2:传统 + 已有 List
List<DemoData> data = data();
EasyExcel.write(fileName, DemoData.class)
    .sheet("模板")
    .doWrite(data);

// 写法 3:Builder(多次写入 / 复杂配置)
try (ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build()) {
    WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();
    excelWriter.write(data(), writeSheet);
}

公式原文:「データ量は 5000 以内を推奨」(1 つの Sheet への一括書き込みの推奨上限)。

ワークフロー

Step 1. データモデルを定義する — DTO/VO を作成し、@ExcelProperty などのアノテーションを付与します Step 2. 書き込み方法を選択する — 1 回の doWrite() / 複数回の excelWriter.write() / doWrite() の繰り返し Step 3. Builder を設定する — 列の選択、ヘッダー、スタイル、インターセプターの登録などを行います Step 4. データを用意する — List<DTO> / List<List<String>> を準備します Step 5. 書き込みを実行する — try-with-resources で ExcelWriter を閉じます Step 6. 出力を検証する — 生成された .xlsx を開いて、ヘッダー/スタイル/書式/結合を確認します

重要:アノテーション早見表

アノテーション用途主な属性
@ExcelProperty列名/インデックス/コンバーターを指定value, index, order, converter
@ExcelIgnoreこのフィールドを無視——
@ExcelIgnoreUnannotatedクラスレベル:アノテーションのないフィールドは読み書きの対象外——
@DateTimeFormat日付形式value, use1904windowing
@NumberFormat数値形式value, roundingMode
@ColumnWidth列幅value
@HeadRowHeightヘッダー行の高さvalue
@ContentRowHeight内容行の高さvalue
@HeadStyleヘッダーのスタイル(POI 形式)fillPatternType, fillForegroundColor, font など
@HeadFontStyleヘッダーのフォントfontHeightInPoints, color, bold など
@ContentStyle内容のスタイルHeadStyle と同じ
@ContentFontStyle内容のフォントHeadFontStyle と同じ
@ContentLoopMerge繰り返し結合eachRow
@OnceAbsoluteMerge一度だけ行う絶対位置での結合firstRowIndex lastRowIndex など

公式原文:order のデフォルト値は Integer.MAX_VALUE です。優先順位は index > order > value です。 公式原文:「index と name の同時使用は推奨しません。index のみを使うか、name のみで照合してください」

リファレンスライブラリ(必要に応じて読み込み)

詳細なコードとコメントは references/ に分割されています。用途に応じて読み込んでください。

API と基本パターン
模式化(表头 / 样式 / 合并 / 图片 / 富文本 / Web / 高级 / 大数据)
故障排查

References

コメント