Labs

Excel Batch Tool

Windows デスクトップアプリ / C# / .NET 8

Excel・CSVの一括加工から、PDF・スキャン帳票のOCR、Excel / CSVへの書き出しまでをまとめて行うWindows向けのツールです。Microsoft Excelが入っていないPCでも、ネットワークに繋がっていないPCでも動きます。

Excel Batch Toolの解析結果画面。上部にExcelファイルのドロップ領域、その下に「1. 解析結果」から「8. PDF を読み取る」までの8つのタブが並ぶ。左に読み込んだ3件のExcelファイルの一覧、右にシート情報と安全性チェックの結果が表示され、最下部に「対象ファイルは変更していません」と出ている
画面上部に並ぶ8つのタブが、そのまま機能の一覧になっています。読み込んだExcelファイルは、どの機能でも変更しません。

できること

  • 大量のExcelファイルを、1つの表にまとめる
  • 複数のブックから選んだシートを、1冊に集める
  • Excel / CSVの列の構成をそろえる
  • キーで一致する行を探して、別のファイルから転記する
  • 2つの表を突き合わせて、既存の行を更新する
  • PDFの帳票をOCRして、Excelにする
  • スキャンした紙の帳票を、CSVにする
  • 読み取った内容を人が確認してから出力する

主な機能

Excel / CSV

同じ形の表を縦につなぐ、シートを1冊へ集める、値をまとめて直す、キーで転記する、突合して更新する。

  • 複数Excelファイルの縦結合
  • 複数シートの集約
  • セルの一括変更
  • 完全一致キーによる転記
  • 表の突合・更新
  • CSVの列名変更・並べ替え・除外・複製
  • 固定値や空欄の列を追加
  • 文字コードと形式の変換
  • 処理設定(レシピ)の保存

PDF / OCR

文字情報を持つPDFはそのまま取り出し、スキャンされたページだけをOCRにかけます。帳票の様式に合わせて読み方を選べます。

  • born-digital PDF(文字情報を持つPDF)
  • スキャンPDF(画像のページ)
  • 罫線あり / 罫線なしの表
  • 同じ様式の帳票を1ページ1件で読み取り
  • チェック・丸・ばつの判定
  • 傾き補正(deskew)
  • PDF内のページごとの自動判定
  • 読み取り結果の確認・修正
  • Excel / CSVへの出力

動作と設計

  • Windows向け

    C# / .NET 8のデスクトップアプリ。配布版は.NETの追加インストールなしで動きます。

  • Excel本体不要

    Microsoft Excelがないパソコンでも、.xlsxファイルを直接読み書きします。

  • 完全オフライン

    OCRを含めて処理はすべてこのPCの中。アプリ自身がネットワーク通信の機能を持ちません。

  • 入力したファイルは変更しません。値を書き換える機能も、別名の新しいファイルを作ります
  • 読み取れなかった値を黙って消しません。「読取不能」「見つからない」として残り、指定した項目の数と確認する件数は必ず一致します
  • 自動で確定できないものは人の確認へ回します。未確認の項目が1件でも残っていると出力できません
PDFを読み取るタブの設定画面。判定は「スキャン / 画像 PDF(OCR が必要)」、読み取り方は「同じ様式の帳票として読む」。店舗コード・担当者・日付・金額といった項目名と種類、必須、読み取る場所が表で並び、下に「確認が済んでいない項目が 42 件あります」と赤字で表示されている
帳票の読み取り設定。確認が済んでいない項目が残っている間は、出力へ進めません。

こういう用途向け

  • 毎月届く大量のExcelファイルを、1つにまとめたい
  • 複数のCSVの列構成を、同じ形にそろえたい
  • PDFやスキャンした帳票を、Excel / CSVへ起こしたい
  • 帳票を外部のクラウドへアップロードせずにOCRしたい
  • OCRの結果を人が確認してから、業務データとして使いたい

対応している範囲

  • Excelは.xlsxが対象です(.xlsは対象外)
  • スキャンPDFのOCRは、別配布のOffline OCR Packを置いたときに使えます
  • OCRが読むのは印刷された文字です。手書きは対象外です

「Excel Batch Tool」は開発コードネームで、正式な製品名は未定です。現在も開発を続けています。

開発記事とソースコード

作った経緯、OCRの実測値、確認画面を作り直した理由、傾き補正を間違えていた話は、開発記事のほうにまとめています。ソースコードはMIT Licenseで公開していて、導入手順と仕様の詳細はREADMEにあります。