🌐 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 ツール同梱(依存ゼロ)。
-
対象の Google スプレッドシートを開く。
-
拡張機能 → Apps Script を開く。
-
shiftjis_download.gsの内容を貼り付けて保存。 -
(任意)メニューから実行できるよう、
onOpenを追加するとワンクリックになります:function onOpen() { SpreadsheetApp.getUi() .createMenu('CSV出力') .addItem('Shift_JIS CSV をダウンロード', 'downloadRakutenOptimizedCSV') .addToUi(); }
スプレッドシートを再読み込みすると「CSV出力」メニューが表示されます。
- 出力したいシートをアクティブにする。
- メニュー CSV出力 → Shift_JIS CSV をダウンロード(または Apps Script エディタで
downloadRakutenOptimizedCSVを直接実行)。 - 初回は権限承認のダイアログが出るので許可する。
- 完了ダイアログの ダウンロード ボタンから 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を調整してください。
本スクリプトは AI(Claude / Gemini)により生成・最適化されたコードを基にしています。 外部ライブラリへの依存はなく、Google Apps Script の組込 API のみを使用します。
ℹ️ 一般的留意点: 純粋に AI が生成したコードは、法域によっては著作権が認められない場合があり、 ライセンスの権利行使可能性に影響しうるという議論があります。公開・利用自体に問題はありませんが、 重要案件では専門家へご確認ください。本 README は法的助言ではありません。
MIT License — Copyright (c) 2026 ECgear
↑ 日本語版はこのページの上部にあります。
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.
| 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 |
- 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.
- Open your Google Sheet → Extensions → Apps Script.
- Paste the contents of
shiftjis_download.gsand save. - (Optional) add an
onOpenmenu (see the Japanese "セットアップ" section above). - Run
downloadRakutenOptimizedCSVand download the CSV from the dialog.
Before uploading to Rakuten RMS, check the file locally:
python3 tools/verify_csv.py ~/Downloads/your_sheet_20260608_220011.csvWhy 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 —
--fixlets you replace/delete/skip each suspicious?, auto-applies the same choice to identical contexts, and keeps a.bak. - CI-friendly — exit codes (
0clean /1mojibake /2error) 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.
MIT — Copyright (c) 2026 ECgear. No third-party dependencies.