CSVDataImExporter
主な機能
- CSV形式でMovable Typeのコンテンツデータ・記事・ウェブページデータのエクスポート・インポートが可能です。
- インポート時のデータ更新は、コンテンツデータID/記事IDによる指定の他、ラベルや出力ファイル名による指定が可能です。これにより、常にインポートだけを行なう運用が可能です。
- 記事・ウェブページは一覧画面から選択してのエクスポートが可能です。
- 記事・ウェブページは、カテゴリ・フォルダ・関連アイテム・カスタムフィールドに対応します(グレードによって対応機能が異なります)。
- Movable Typeクラウド版に対応(4_00以降)。
- Movable Typeコンテンツデータに対応(5_00以降)。
- Mac Excelにも対応(5_12以降)。
動作確認環境
- Movable Type 8.x /9.x
- OS:Linux(CentOS)/Windows 11
- Perl:5.8.8以上
- 表計算ツール:Microsoft Excel 2010/Microsoft Excel 2000/OpenOffice Calc/LibreOffice Calc
インストール
ダウンロードアーカイブを展開した中にある「CSVDataImExporter」フォルダをMovable Typeのpluginsディレクトリにアップロードします。アップロード後、システム管理画面の「ツール」→「プラグイン」で「CSVDataImExporter」が表示されていればインストール完了です。
使い方
CSVデータのエクスポート
エクスポートはサイト管理者以上の権限が必要です。
機能拡張版では権限によってインポート・エクスポートのリンクが表示されない場合があります。
コンテンツデータの場合、左メニューのコンテンツデータ名をクリックし、一覧画面上部「〜をエクスポート」をクリック。
エクスポート画面が表示されます。
記事・ウェブページの場合、左メニューの「記事」→「CSVデータのエクスポート」をクリック。
エクスポート画面が表示されます。
CSVデータのインポート
インポートはサイト管理者以上の権限が必要です。
機能拡張版では権限によってインポート・エクスポートのリンクが表示されない場合があります。
コンテンツデータの場合、左メニューのコンテンツデータ名をクリックし、一覧画面上部「〜をインポート」をクリック。
インポート画面が表示されます。
出力ファイル名は下記フォーマットの「identifier」を指します。
CSVに列指定なしの場合に初期値を適用するフィールドは下記のとおりです。
- テキスト
- テキスト(複数行)ブロックエディタを除く
- 数値
- URL
- 日付と時刻
- 日付
- 時刻
- セレクトボックス(選択されている項目を初期値として適用)
- ラジオボタン(選択されている項目を初期値として適用)
- チェックボックス(選択されている項目を初期値として適用)
- 埋め込みテキスト
- タグ
記事・ウェブページの場合、左メニューの「記事」→「インポート」をクリックしたあと、「インポート元」のプルダウンから「CSV形式」を選択すれば、インポート画面が表示されます。
各種設定
下記の設定は、システム管理画面またはサイト管理画面の「設定」→「プラグイン」→「CSVDataImExporter」→「設定」で設定できます。
クラウド/非クラウド
AWSなどのクラウド環境でプラグインをご利用の場合、「利用環境」で「クラウド環境」を選択してください(デフォルトは「非クラウド環境」)。
CSVファイルの文字コード
エクスポート・インポートの文字コードを「CSVファイルの文字コード」で選択できます(デフォルトは「Shift_JIS(CP932)」)。UTF-8選択時、BOM有無を設定できます。
改行コード
インポートの改行コードを「改行コード」で選択できます(デフォルトは「CR+LF」)。
5.45または6.17までのバージョンでLFを指定したい場合は、「CR+LF」を選択してください。
アップロードしたアセットの移動
アップロードしたアセットの移動する・移動しないを選択できます(デフォルトは「移動する」)。
ファイル自体のアップロード機能はありません。コンテンツデータのアセットアップロードについてはアセットアップロード版で対応可能です。
日本語ファイル名のURIエンコード
CSVにフルパスで記載した場合の日本語ファイル名のURLのみ、URIエンコードして登録します(デフォルトは「エンコードしない」)。
例:画像アセットを"/var/www/html/mt/image/テスト123.png"で設定し、CSVファイルをインポート
- アセット編集画面の「名前」:テスト123.png
- アセット編集画面の「ファイル名」:テスト123.png
- アセット編集画面の「アセットの埋め込み」:https://user-domain/mt/images/%E3%83%86%E3%82%B9%E3%83%88123.png
セレクトボックス/チェックボックス/ラジオボタンのデータ
セレクトボックス/チェックボックス/ラジオボタンのデータについて、ラベル・値のどちらを利用するかを「セレクトボックス/チェックボックス/ラジオボタンのデータ」で選択できます(デフォルトは「値」)。
更新履歴の保存
更新履歴の保存する・しないを「更新履歴の保存」で選択できます(デフォルトは「保存しない」)。
ステータス「未公開(原稿)」のファイル削除
ステータス「未公開(原稿)」のファイル削除する・しないを「ステータス「未公開(原稿)」のファイル削除」で選択できます(デフォルトは「削除しない」)。
「削除する(MTのファイル削除機能を利用)」は、編集画面から「公開→未公開(原稿)」を実施した場合と同等のHTMLファイル削除ルートを実行します。プラグインのフックポイントも実行されます。 「削除する」は、前述のHTMLファイル削除ルートの機能を絞って、HTMLファイル削除とmt_fileinfoテーブルからのレコード削除のみを実施します。
MT7-R4901以前のバージョンでは「削除する(MTのファイル削除機能を利用)」を選択してください。
CSVデータのフォーマット(コンテンツデータ)
CSVデータのフォーマットは表の通りになります(v5.29以降)。
| 項目 | 1行目 | 2行目以降 | 備考 |
|---|---|---|---|
| コンテンツタイプ | content_type | コンテンツタイプ名を設定 | 必須(列削除不可) |
| コンテンツデータID | id | コンテンツデータIDを半角数字で入力 | 必須(列削除不可)。上書き時はid値必須 |
| データ識別ラベル | label | データ識別ラベルを設定 | 必須。ただし自動入力の場合は値不要。列削除不可 |
| ユーザーID | author_id | 投稿者のユーザーIDを設定 | 必須(列削除不可) |
| 出力ファイル名 | identifier | 出力ファイル名を設定 | 任意(列削除可)。新規で未設定の場合、自動生成。 |
| 公開日 | authored_on | 以下のいずれかのフォーマットを設定 YYYYMMDDHHMMSS 例:20140101235959 YYYY-MM-DDTHH:MM:SS.mmm 例:2014-01-01T23:59:59.000 YYYY-MM-DD HH:MM:SS 例:2014-01-01 23:59:59 YYYY/M/D H:MM 例:2014/1/1 23:59 YYYY.M.D H:MM 例:2014.1.1 23:59 | 任意(列削除可) |
| 更新日 | modified_on | フォーマットは公開日と同じ | 任意(列削除可) |
| 公開終了日 | unpublished_on | フォーマットは公開日と同じ | 任意(列削除可) |
| ステータス | status | 下書き:1 公開:2 指定日:4 公開終了:6 | 必須(列削除不可) |
| コンテンツフィールド | コンテンツフィールドの名前 | コンテンツフィールドデータを設定 | 詳細は評価版でエクスポートしてみてください |
インポートが不要なコンテンツフィールドはCSVから列削除が可能です(元の値が残ります)。
何らかの値が入っているコンテンツフィールドに対し空の値をインポートすると、元のデータは空の値で上書きされます。
コンテンツフィールド「アセット(オーディオ・ビデオ・画像含む)」のフォーマット
CSVに設定するアセットのフォーマットは次のいずれかになります。赤色部分がデータ部分になります。
- パターン1 ※エクスポート時はこのフォーマットになります
アセット名(アセットID) - パターン2 未登録のアセットを関連付ける場合
アセットのパス(ルートディレクトリからのフルパス)とファイル名
例:/home/user-name/www/sample.jpg -
パターン3 アセットアップロード版で未登録のアセットを関連付ける場合
アセットのパス(サイトパスからのパス)とファイル名
例:assets/2025/09/sample.jpg
パターン2の場合、ファイルはMTと同じサーバに予めアップロードしてください(ファイルのアップロード機能はありません)。
パターン3の場合、ファイルはCSVファイルと同じフォルダに「ASSET_DIR」を作成し、その配下に同梱してZIP形式にしてください(アセットアップロード版)。
アセットをパターン2のフォーマットで指定した後で上書きインポートを行う場合は、パターン2のフォーマットでインポートしたあと、パターン1(アセットIDはエクスポートしたCSVで確認)でインポートしてください。パターン2のフォーマットで複数回インポートを行うと、異なるアセットとして登録されます。
パターン2でアップロードする場合、ファイル名の重複がないようにしてください。
ブロックエディタ(コンテンツフィールド「テキスト(複数行)」の「ブロックエディタ」)のフォーマット
| 種類 | 見出し | テキスト | 埋め込みコード | 水平線 | 画像 |
|---|---|---|---|---|---|
| キー | ● | ● | ● | ● | ● |
| type | heading | text | embed | horizon | image |
| order | ● | ● | ● | ● | ● |
| html | ● | ● | ● | ● | ● |
| value | ● | ● | ● | ● ("[]"固定) |
|
| options | ● | ● ("[]"固定) |
● ("[]"固定) |
● | |
| elm | ● | ||||
| align | ● | ||||
| alt | ● | ||||
| caption | ● | ||||
| title | ● | ||||
| width | ● | ||||
| asset_id | ● | ||||
| asset_url | ● |
各項目の意味
- キー:1つのコンテンツデータ内で重複しない半角英数文字を指定
- type:ブロックの種類(heading:見出し/text:テキスト/embed:埋め込みコード/horizon:水平線/image:画像)
- order:ブロックエディタ内で重複しない半角数字を指定(指定順に表示)
- html:ブロックのHTML
- value:ブロックの値
- options:オプション(値は配下の項目で指定)
- elm:ヘッダの要素
- align:画像のアライメント
- alt:画像の代替テキスト
- caption:画像のキャプション
- title:画像のタイトル
- width:画像の幅
- asset_id:アセットID
- asset_url:アセットのURL
注意事項
- YAMLフォーマットに違反した場合、エラーメッセージを表示し、処理を中断または該当フィールドのインポートをスキップします。エラーの原因やエラーメッセージの内容についてはお客様にて解析願います
- 画像のアップロードには対応していません。アセットのID、URLを設定してください
- 画像のID・URLは必須です
- 画像のIDおよびURLに一致するアセットを事前に用意してください。誤ったIDおよびURLのチェックは行いません。誤っていた場合、インポート後の動作保証は致しません
- 上記のデフォルト設定以外のブロックデータについては改修が必要です(有償)
エクスポートデータのサンプル(コンテンツデータ)
content_type,id,label,author_id,identifier,authored_on,modified_on,unpublished_on,status,テキスト,テキスト(複数行)_convert_breaks,テキスト(複数行),数値,URL,日付と時刻,日付,時刻,セレクトボックス,ラジオボタン,チェックボックス,カテゴリ,埋め込みテキスト,コンテンツタイプ,画像
商品,1,test1,2,d2cc8562de18dfb00db091082ede6fccb716b354,2019-01-07 22:08:00,2019-01-14 18:25:56,,2,test1,0,aaa,,,,,,,,,,,,
商品,2,test2,2,676bddac8af2db3d4471fff68238a1c2aeb83adc,2019-01-12 01:57:30,2019-07-22 23:33:07,,2,test2,__default__,かきくけこ,3000,https://www.facebook.com/,2019-07-01 12:34:56,2019-07-10,11:22:33,1,1,3,"cat1(4:cat1),cat2(3:cat2),cat3(2:cat3)",,"Site Page:003,Site Page:002,Site Page:001",default-userpic-90.jpg(8)
商品,3,test1,2,bc00015e96ee0bfee0600e0ebf6b5fc398778768,2019-01-14 19:01:15,2019-07-22 23:31:08,,2,test1,richtext,あいうえお
,1000,https://www.koikikukan.com/,2019-07-22 00:00:00,2019-07-31,12:34:56,1,2,"1,2",cat2(3:cat2),,Site Page:002,bug-pbmt-white.png(7)
エクスポートデータのサンプル(ブロックエディタ部分)
17c93789c711180:
type: text
order: 1
value: |
テキスト
html: |
テキスト
17c937875d423a8:
type: heading
order: 2
options:
elm: h1
value: ヘッダ
html: ヘッダ
注意事項
- CSVデータで、classとidの出現順序が間違ったフォーマットでインポートするとインポートエラーになります。
- 大量のデータをインポート・エクスポートする場合、サーバ環境・性能によって処理が正常に終了しない場合があります(評価版で事前にご確認ください)。
- 3rd Party製プラグインでカスタムフィールドを拡張し、そのフィールドの処理が正常に行えない場合、別途改修する必要があります。
更新履歴
- MT9対応