Skip to content

Repository files navigation

pdf-input-from-excel

日本語 | English

Excelで作ったXLSX帳票を、PDF上で記入できるフォームとして使うアプリです。XLSXから生成したPDFプレビューに入力位置を合わせることで、紙の帳票へ書き込む感覚で操作できます。管理する帳票原本はXLSXだけ。入力欄と位置合わせの設定はアプリが保存し、記入結果をXLSX・PDFで出力します。

PDF 上の入力欄と右側のフォーム、どちらからでも同じ内容を編集できます。PDF 用の入力テンプレートを別に管理する必要はありません。

PDF上と右側のフォームで同じ内容を編集できる記入画面

どうやって入力するのか

  1. XLSX を読み込む。 Excel で作った帳票を PDF プレビューとして表示します。タイトルや固定文言は、原本のまま使います。
  2. 記入する枠だけを設定する。 作業日、担当者、作業内容などの枠に名前と入力形式を付けます。タイトルのような固定文字に、別の名前を付け直す必要はありません。2 点位置合わせには、入力欄にしない枠や文字のない空欄も使えます。
  3. PDF 上でも、右側でも記入する。 PDF の上に重ねた入力欄をクリックして編集します。右側のフォームも同じ記入データにつながっているので、変更はすぐにもう一方へ反映されます。署名欄を押すと手書き用の画面が開きます。
  4. 上部のボタンから出力する。 入力内容を保存してから、原本のコピーへ値・署名を書き込んだ XLSX を生成します。PDF 出力は、その記入済み XLSX をデスクトップ版 Excel で変換します。

画面の PDF は帳票の背景です。PDF ファイルの文字を直接書き換える仕組みではなく、設定した入力欄と記入データを重ねて表示します。元の XLSX は上書きしません。

帳票だけを広く表示する

「右の入力パネルを隠す」を押すと、PDF 上の入力だけで作業できます。パネルを再表示しても入力内容はそのままです。保存状態と XLSX・PDF のダウンロードは、どちらの表示でも上部から使えます。

右側を隠し、帳票上で直接記入する画面

画像は同梱の架空帳票 example.xlsx を使った実画面です。担当者名・作業内容は説明用のサンプルで、利用者の帳票や記入内容は使用していません。

できること

  • XLSX 上の範囲を選び、日付、数値、1 行テキスト、複数行テキスト、チェック、署名の入力欄として設定
  • 2 点位置合わせとテスト記入で、入力値と帳票プレビューの対応を確認
  • PDF 上と右側フォームの両方から記入でき、変更を即座に同期。右側フォームは表示・非表示を切り替え可能
  • 入力内容をローカルへ自動保存し、元のテンプレートを上書きせずに XLSX を生成
  • 同じ記入内容から、デスクトップ版 Microsoft Excel を使って PDF を生成
  • Windows 向けに、Node.js と .NET Runtime の追加インストールが不要なローカル配布物を作成

必要環境

ソースからの実行は Windows Git Bash または WSL2 を対象とします。初期プレビューの生成と PDF 出力には、Windows 側にインストールされたデスクトップ版 Microsoft Excel と PowerShell が必要です。依存関係のインストールとビルドには Node.js を使用します。

動作確認済みの環境は次のとおりです。

  • Windows 11 Pro 10.0.26200(Build 26200): Node.js 22.16.0、.NET SDK 8.0.424、Excel EXE 16.0.20326.20132(エディションは未確認)
  • WSL2: Linux kernel 6.18.33.2、Node.js 24.18.0。Windows 側の Excel を呼び出して確認

クイックスタート

取得済みソースの親ディレクトリから、Git Bash または WSL2 で次の 5 コマンドを実行します。

cd pdf-input-from-excel
npm ci
npm run build --workspace=frontend
npm run build --workspace=backend
STATIC_DIR=frontend/dist node backend/dist/server.js

起動後、ブラウザで http://localhost:3211 を開きます。初回起動では同梱の example/example.xlsx が作業用領域へコピーされ、元ファイルは変更されません。

初回設定から XLSX/PDF 出力までの操作は Getting Started を参照してください。Windows 向け配布物の作成と起動は Windows ローカル版 に記載しています。

制限事項

  • v0.1 は単一テンプレート、単一の記入データを扱います。複数帳票の一覧、履歴、認証、クラウド保存、LAN 共有には対応していません。
  • 初期プレビューと PDF 出力はデスクトップ版 Microsoft Excel に依存します。Linux ネイティブと macOS は未対応です。
  • XLSX 出力は利用できますが、Excel を利用できない環境では初回プレビューと PDF 出力を完了できません。
  • npm audit --omit=dev は現在 2 high、2 moderate を報告します。対象は xlsx(prototype pollution / ReDoS)、pdfjs-distenableScripting を有効にして悪意ある PDF を開く場合のスクリプト実行)、および exceljs 経由の uuid(v3/v5/v6 のバッファ境界検査)です。v0.1 は利用者が選んだローカルファイルを扱う前提ですが、これを脆弱性が悪用されないことの保証とはしません。

ライセンス

このプロジェクトは Apache License 2.0 で提供します。

About

Fill forms directly on an aligned PDF preview generated from XLSX. Maintain only the Excel template; export completed XLSX or PDF.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages