0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【JavaScript】PDF・Webコピペで崩れた表データを正規化してExcel/Markdown出力する単一HTMLツール

0
Posted at

概要
PDFやWebサイトからコピーした際に発生する「スペース区切り」「不要なクォート」「Markdown表」「タブ区切り」の差異を自動判定し、矩形テーブルとして列数を正規化してクリップボードに復元するツールです。

実装ポイント
多種多様な区切り文字の自動判定: Markdownのパイプ(|)、TSV(\t)、CSV(,)、連続空白(\s{2,})を順次フォールバック判定。

列数の正規化(最大列揃え): 欠損セルのある行を自動補正して矩形データを維持。

ゼロ通信: クライアントサイドJavaScriptのみで完結。

コピペ表・崩れ修復&テーブルクリーナー

🧹 コピペ表・崩れ修復&テーブルクリーナー

PDF・Web・チャットからコピペして崩れた表の「セル内改行・列ズレ・余計な空白」を一発修復

📋 崩れた表テキストをペースト 完全オフライン処理
  <div class="options-bar">
    <label><input type="checkbox" id="optTrim" checked onchange="repairTable()"> 各セルの余白をトリム</label>
    <label><input type="checkbox" id="optRemoveQuotes" checked onchange="repairTable()"> 余計な引用符(")を削除</label>
    <label><input type="checkbox" id="optCollapseSpaces" checked onchange="repairTable()"> 連続空白を区切りに変換</label>
  </div>

  <div class="btn-bar">
    <button class="btn-secondary" onclick="loadSample()">サンプル読み込み</button>
    <button class="btn-secondary" onclick="document.getElementById('rawInput').value=''; repairTable();">クリア</button>
  </div>

  <div class="stats-bar">
    <span id="inputStats">入力行数: 0 行</span>
  </div>
</div>

<!-- 右:修復結果 -->
<div class="card">
  <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:8px;">
    <label style="font-weight:bold; font-size:0.9rem;">✨ 修復済みテーブル</label>
    <div class="format-tabs">
      <button class="tab-btn active" id="tabTSV" onclick="setFormat('tsv')">Excel貼付用 (TSV)</button>
      <button class="tab-btn" id="tabMD" onclick="setFormat('md')">Markdown</button>
      <button class="tab-btn" id="tabCSV" onclick="setFormat('csv')">CSV</button>
    </div>
  </div>

  <textarea id="cleanedOutput" readonly placeholder="修復された表がここに表示されます..."></textarea>

  <div class="btn-bar">
    <button class="btn-primary" onclick="copyCleaned()">修復データをコピー (Excel直貼り可)</button>
    <button class="btn-secondary" onclick="downloadFile()">ファイル保存</button>
  </div>

  <div class="stats-bar">
    <span id="outputStats">修復結果: 0 行 × 0 列</span>
    <span style="color:var(--success);">✅ そのままExcel / スプレッドシートに貼付可</span>
  </div>
</div>
クリップボードにコピーしました
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?