• #日記
  • #cashflow
  • #excel
  • #python
  • #automation
  • #turso
daily-log

2026年4月15日の開発日記

朝5時半から夜まで、CF精算表(CFWS)の自動生成パイプラインに没頭した1日。1ファイルのプロトタイプから始めて、42論点の一括生成、書籍PDFのスクリーンショット撮影、HTMLテーブルへの構造化、Excelビューア構築まで一気に通した。

今日のタイムライン

タイムライン

今日やったこと

1. CF精算表の独立Excel自動生成(Phase 1〜4)

仮説検証用Excelをパースして、MF仕訳シート・年次推移表・CFWSの3シート構成Excelを自動生成するスクリプトを構築した。Q3-9(有形固定資産)のプロトタイプから始めて、42論点の一括生成まで到達。

主な成果:

  • 上半分check行 42/42 全てゼロ達成
  • Codexレビュー3回で致命的指摘を全て反映(数式ベース化、開始残高SUMIFS混入防止)
  • Turso DBから書籍解説テキストを自動挿入するパイプライン完成
  • cfws_registryテーブルで次セッションへのコンテキストブリッジ構築

詳細: CF精算表の独立Excel自動生成


2. 書籍スクリーンショット撮影とHTMLテーブル構造化

Chrome DevToolsで参考書PDFを開き、全37論点の精算表スクリーンショットを撮影。ImageMagickでクロップし、HTMLテーブルに構造化データ変換した。

主な成果:

  • 全39枚のスクリーンショット撮影完了(縦モニター200%ズームで品質向上)
  • 37タブ構成のindex.htmlに全Q統合(タブ切替UI + 矢印キー移動)
  • 全Qの数値照合レビュー完了(1セルずつスクショとHTMLを突合)

詳細: CF精算表スクリーンショット撮影からHTMLテーブル構造化まで


3. Excel CFWSのHTMLビューア構築

ExcelのCFWSシートをHTMLテーブルに変換するビューアを構築。iframeの高さ自動調整やcheck検証の可視化機能を実装した。

主な成果:

  • Excel COM経由で数式計算済みファイルを生成→HTML変換のパイプライン確立
  • postMessageベースのiframe高さ自動調整で、タブ切替時の表示崩れを解消
  • check≠0のタブを赤色表示する可視化機能で、5件のバグを検出→4件修正完了

詳細: CF精算表HTMLビューア構築


今日の試行錯誤

#テーマ試したこと結果気づき
1SUMIFSの日付不一致取引日をテキスト文字列で保存失敗Excelの日付比較はdate型でないとマッチしない
2科目名の不一致「備品」でACCOUNT_DBを検索失敗正式名「工具器具備品」とのエイリアス対応が必要
3繰越利益剰余金のPL未反映SUMIFSだけでBS残高を計算check≠0PL利益を加算する数式を別途追加する必要がある
4CFラベル名の不一致短縮ラベル「売上債権の増減」で配賦未配賦正式名「売上債権の増減額(△は増加)」との正規化関数が必要
5iframeの高さ不足onloadでcontentDocument.scrollHeight取得不可file://のクロスオリジン制限。postMessage方式で迂回
6非表示タブのscrollHeightdisplay:none時にpostMessage高さ0タブ切替時にcfws-request-heightメッセージを送信
7スクショのズーム75%で1ページ全体を撮影文字が潰れる縦モニター200%ズームで品質が大幅に向上
8クロップ座標の注記切れbottomを控えめに設定<*C>以降が消える注記は<*A>〜最後まで余裕を持って含める

今日の学び

  • SUMIFSは日付型に厳格で、文字列と日付が混在するとサイレントに0を返す
  • Codexレビューを3回回すと、致命的な設計ミス(値vs数式、開始残高汚染)を事前に潰せる
  • iframeのpostMessageリサイズは、file://プロトコルでもクロスオリジン制限を回避できる実用的なパターン
  • スクリーンショット撮影は、モニターの向き(縦横)とズーム倍率で品質が劇的に変わる
  • check≠0のタブを視覚的に赤くすると、37タブの中から問題箇所が一瞬で目に飛び込む

明日やること

  • Q4-2(連結仕訳)のcheck≠0バグ修正
  • 残りのクロップ画像の仕上げ(Q5-23〜Q5-26)
  • 全Q一括Excel→HTML変換の自動化スクリプト完成
  • Phase 3: 書籍スクリーンショットとExcelの対応確認

関連記事