Skip to content

ECgear/shiftjis-csv-exporter

Repository files navigation

Shift_JIS CSV Exporter for Rakuten(楽天向け Shift_JIS CSV 出力 GAS)

CI License: MIT

🌐 English version is at the bottom of this page → Jump to English.

Google スプレッドシートの内容を、楽天市場の商品一括登録向け Shift_JIS (MS932) CSV として 出力する Google Apps Script です。文字化けや「0落ち」を強力に防ぎ、そのまま楽天 RMS に 取り込める CSV を生成します。付属の検証ツール tools/verify_csv.py で、 ダウンロード後に文字化けがないかをローカルで一瞬で確認・修正できます。

⚠️ 免責 / Disclaimer 本ツールは非公式であり、楽天グループ株式会社とは一切関係がありません。 「楽天」「Rakuten」は各権利者の商標です。本ツールは楽天 CSV フォーマットとの 相互運用を目的としています。


特徴

  • 文字化け対策(網羅的): 機種依存文字・旧字体/異体字・丸数字・ローマ数字・単位記号・ 絵文字・各種ダッシュ/空白・©®™・分数・合字などを、CP932 で安全に表示できる文字へ置換します。
  • 「?」化けゼロ保証: テーブルで拾えなかった CP932 非対応文字(ハングルや稀少漢字など)も、 最終段の安全網が実エンコード検査で検出して削除するため、出力 CSV に「?」が残りません。
  • データ整合性: JAN コードや商品番号の「0落ち」「指数表記(例 4.56E+12)」を防ぐ文字列処理。
  • 正確なエンコード: 楽天推奨の Shift_JIS(MS932 / Windows-31J)で出力。
  • 高速: 文字置換を単一パスへ統合済み。大きなシートでも高速に処理します。
  • 簡単な UI: ダイアログのボタンからダウンロードできます。
  • 付属の検証/修正ツール: ダウンロード後の最終チェックを自動化できる Python ツール同梱(依存ゼロ)。

セットアップ

  1. 対象の Google スプレッドシートを開く。

  2. 拡張機能 → Apps Script を開く。

  3. shiftjis_download.gs の内容を貼り付けて保存。

  4. (任意)メニューから実行できるよう、onOpen を追加するとワンクリックになります:

    function onOpen() {
      SpreadsheetApp.getUi()
        .createMenu('CSV出力')
        .addItem('Shift_JIS CSV をダウンロード', 'downloadRakutenOptimizedCSV')
        .addToUi();
    }

    スプレッドシートを再読み込みすると「CSV出力」メニューが表示されます。


使い方

  1. 出力したいシートをアクティブにする。
  2. メニュー CSV出力 → Shift_JIS CSV をダウンロード(または Apps Script エディタで downloadRakutenOptimizedCSV を直接実行)。
  3. 初回は権限承認のダイアログが出るので許可する。
  4. 完了ダイアログの ダウンロード ボタンから CSV を取得。

出力ファイル名は (シート名)_yyyyMMdd_HHmmss.csv、エンコードは Shift_JIS (MS932)。

補足: ダウンロードが始まらない場合はブラウザのポップアップブロックを確認してください。


✅ ダウンロード後の検証ワークフロー(強く推奨)

CSV をダウンロードしたら、楽天 RMS にアップロードする前に、同梱の tools/verify_csv.py で文字化けをチェックすることを強く推奨します。

# ダウンロードした CSV を検証(OK なら exit 0)
python3 tools/verify_csv.py ~/Downloads/あなたのシート名_20260608_220011.csv

なぜ検証するのか — 得られるメリット

メリット 内容
アップロード事故を未然に防ぐ 楽天 RMS に上げてから「商品名が ? で表示される」「取込エラー」になるのを、ローカルで事前に発見できます。修正のための再アップロードややり直しが不要に。
Excel で開いて保存した壊れを検出 CSV を Excel 等で開いて保存し直すと、UTF-8 化・BOM 付与でエンコードが壊れることがあります。本ツールは BOM 混入や不正バイトを検出して教えてくれます。
問題箇所がすぐ分かる 文字化け疑いを CSV の 行:列(表計算と同じ座標)+前後の文章で表示。どのセルを直せばよいか一目で分かります。
その場で安全に直せる --fix で疑わしい「?」を 1 件ずつ対話修正(置換/削除/スキップ)。同じ文脈は自動適用でまとめて処理でき、元ファイルは .bak で保護されます。
自動化・CI に組み込める 終了コード(0=クリーン / 1=文字化け / 2=エラー)で、出力パイプラインやチームの確認フローに組み込めます。
依存ゼロ・高速 追加インストール不要(Python 標準のみ)。数十 MB の CSV も 0.1 秒程度で検査します。

本 GAS は安全網で CP932 非対応文字を削除するため、正しく生成した CSV は通常 CLEAN になります。 それでも「手編集した」「別ツール由来」「Excel を経由した」CSV を独立して検証できる安心感が得られます。

詳しい使い方(--fix の対話操作・自動適用・--skip-window など)は tools/README.md を参照してください。


動作の概要

getValues() で取得した値を CSV 文字列化し、包括的な文字置換と Unicode 正規化を行ったうえで MS932 として Blob 化、Google Drive に一時保存してダウンロードリンクを提示します。 内部設計・改変時の注意点・テスト手順は CLAUDE.md を参照してください。


リポジトリ構成

shiftjis-csv-exporter/
├── shiftjis_download.gs   # 本体(Google Apps Script)
├── README.md              # このファイル(利用者向け)
├── CLAUDE.md              # 開発・保守ガイド
├── LICENSE                # MIT
└── tools/
    ├── verify_csv.py      # CSV 文字化け検証/修正ツール(依存ゼロの Python・単体公開可)
    ├── README.md          # 検証ツールの独立ドキュメント
    └── LICENSE            # MIT(単体で持ち出しても完結)

tools/ 配下は GAS に依存しない独立した CLI ツールです。汎用の Shift_JIS CSV 検証ツールとして 単体でも公開・利用できます。


既知の挙動

  • 絵文字の削除範囲(U+2600–U+26FF)に含まれる ★ ☆ ♪ などは、CP932 で表示可能でも 削除されます。残したい場合はコードの emojiRegex を調整してください。

来歴 / Provenance

本スクリプトは AI(Claude / Gemini)により生成・最適化されたコードを基にしています。 外部ライブラリへの依存はなく、Google Apps Script の組込 API のみを使用します。

ℹ️ 一般的留意点: 純粋に AI が生成したコードは、法域によっては著作権が認められない場合があり、 ライセンスの権利行使可能性に影響しうるという議論があります。公開・利用自体に問題はありませんが、 重要案件では専門家へご確認ください。本 README は法的助言ではありません。


License

MIT License — Copyright (c) 2026 ECgear


English

↑ 日本語版はこのページの上部にあります。

Shift_JIS CSV Exporter for Rakuten turns a Google Sheet into a Shift_JIS (MS932 / Windows-31J / CP932) CSV ready for Rakuten Ichiba bulk product registration — without the mojibake (garbled text) and leading-zero loss that usually break such uploads. It ships with a zero-dependency Python verifier/fixer (tools/verify_csv.py) to double-check the file after download.

⚠️ Disclaimer: This is an unofficial tool and is not affiliated with Rakuten Group, Inc. "Rakuten" is a trademark of its respective owner. The project only aims at interoperability with the Rakuten CSV format.

Components

File What it is
shiftjis_download.gs Google Apps Script that exports the active sheet as MS932 CSV
tools/verify_csv.py Standalone Python CLI that verifies (and interactively fixes) Shift_JIS CSVs — see tools/README.md

Features

  • Comprehensive mojibake prevention — device-dependent characters, old/variant kanji, circled numbers, unit symbols, emoji, dashes/spaces, ©®™, fractions and ligatures are mapped to CP932-safe characters.
  • Zero "?" guarantee — a final safety net round-trips through MS932 and removes any remaining unencodable characters, so the output never contains substitution ?.
  • Data integrity — prevents leading-zero loss and exponential notation (e.g. JAN codes).
  • Fast — single-pass character replacement; handles large sheets quickly.
  • Bundled verifier/fixer — automate the post-download sanity check.

Quick start (GAS)

  1. Open your Google Sheet → Extensions → Apps Script.
  2. Paste the contents of shiftjis_download.gs and save.
  3. (Optional) add an onOpen menu (see the Japanese "セットアップ" section above).
  4. Run downloadRakutenOptimizedCSV and download the CSV from the dialog.

Recommended workflow — verify after download

Before uploading to Rakuten RMS, check the file locally:

python3 tools/verify_csv.py ~/Downloads/your_sheet_20260608_220011.csv

Why it pays off:

  • Catch upload accidents early — find ?-mojibake or import errors before RMS rejects the file.
  • Detect Excel re-save damage — opening/saving a CSV in Excel can add a BOM or switch it to UTF-8; the verifier flags that.
  • Pinpoint the problem — issues are reported at the CSV row:col (spreadsheet coordinates) with surrounding text.
  • Fix in place, safely--fix lets you replace/delete/skip each suspicious ?, auto-applies the same choice to identical contexts, and keeps a .bak.
  • CI-friendly — exit codes (0 clean / 1 mojibake / 2 error) plug into pipelines.
  • Zero dependencies, fast — Python standard library only; tens of MB in ~0.1 s.

Full CLI reference (interactive --fix, auto-apply, --skip-window, exit codes): tools/README.md.

License

MIT — Copyright (c) 2026 ECgear. No third-party dependencies.

About

楽天向け Shift_JIS(MS932) CSV 出力 GAS + 依存ゼロの CSV 文字化け検証/修正ツール (verify_csv.py)。Shift_JIS CSV exporter for Rakuten + zero-dependency mojibake verifier/fixer.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors