Article

CSVを自動取り込みするシステムとは?定期読込・データ連携を自動化する方法

「基幹システムからCSVを出力し、毎日別のシステムへ登録している」

「CSVをExcelで開いて列を並べ替えてから取り込んでいる」

「複数のCSVファイルを毎月一つにまとめている」

「CSVの取り込み作業を担当者が忘れることがある」

このような業務は、CSVの自動取り込みによって効率化できる可能性があります。

CSVはさまざまなシステムで利用できる便利なデータ形式です。

一方で、システム同士が直接連携していない場合、

システムA
↓
CSV出力
↓
担当者が加工
↓
システムBへ取り込み

という人手を介した処理が発生することがあります。

この作業が毎日・毎週・毎月繰り返されているなら、

CSVを所定の場所へ配置
↓
自動読み込み
↓
データチェック
↓
必要な形式へ変換
↓
データベースへ登録

という仕組みにできる場合があります。

この記事では、CSVを自動取り込みするシステムの仕組み、PythonやWebシステムを利用した自動化、エラー処理、重複防止、外注するときに整理したいポイントを解説します。

CSVの自動取り込みとは

CSVの自動取り込みとは、CSVファイルを人が一件ずつ開いたり、アップロードしたりせず、決められたルールに従ってシステムが読み込む仕組みです。

例えば、毎日売上データがCSVで出力される場合、

sales_20260729.csv
sales_20260730.csv
sales_20260731.csv

を指定フォルダへ保存します。

システムが定期的にそのフォルダを確認し、

新しいCSVを発見
↓
内容を確認
↓
データを取り込み
↓
処理済みへ移動

します。

担当者が毎回「インポート」ボタンを押す必要がありません。

CSV取り込みが発生しやすい業務

CSV連携はさまざまな業務で発生します。

売上データ

例えばPOSや販売管理システムから、

日付
商品
数量
売上金額

をCSV出力し、集計システムへ取り込みます。

顧客データ

顧客管理サービスから、

顧客ID
会社名
担当者名
メール
電話番号

などを出力し、社内システムへ登録します。

商品マスター

ECサイトや販売システムから商品情報を取得します。

在庫データ

倉庫システムから、

商品コード
倉庫
在庫数

を出力して別システムへ反映します。

受注データ

ECモールや注文管理システムから受注CSVを取得し、社内の受注管理へ取り込むケースです。

勤怠データ

勤怠システムからCSVを出力し、給与計算用データへ加工します。

会計データ

売上・仕入・経費データを会計ソフト用の形式に変換する業務もあります。

CSV取り込みを手作業で行う問題点

毎回同じ操作が発生する

例えば毎朝、

管理画面へログイン
↓
CSVダウンロード
↓
Excelで開く
↓
不要列を削除
↓
列順を変更
↓
別システムへアップロード

している場合です。

作業自体は難しくなくても、毎日続けると大きな負担になります。

取り込み忘れが発生する

特定の担当者が作業している場合、

  • 忙しい
  • 休暇
  • 引き継ぎ不足

などによって処理されない可能性があります。

加工ミスが発生する

CSVをExcelで加工する際に、

  • 行を削除してしまう
  • 列をずらす
  • 数式を誤る
  • データを上書きする

といったミスが発生することがあります。

同じCSVを二重に取り込む

例えば昨日処理したCSVを誤ってもう一度取り込むと、データが二重登録される可能性があります。

CSV形式の違いに気づけない

出力元システムの仕様変更で、

旧
顧客名

新
会社名

のように列名が変わる場合があります。

自動チェックがないと、誤った状態で登録される可能性があります。

CSV自動取り込みの基本的な流れ

一般的には次のような処理になります。

CSV取得
↓
ファイルチェック
↓
文字コード確認
↓
ヘッダー確認
↓
データチェック
↓
データ変換
↓
重複チェック
↓
データベース登録
↓
結果記録

単純にCSVを読み込むだけではなく、取り込む前後のチェックが重要です。

方法1.指定フォルダからCSVを自動取り込みする

比較的シンプルな方法です。

例えば、

/import

というフォルダを用意します。

担当者や別のシステムがCSVを保存すると、自動処理が実行されます。

処理後は、

/import
↓
/processed

へ移動します。

エラーになった場合は、

/error

へ移動する構成もできます。

フォルダ監視が向いているケース

  • 社内PCやサーバーでCSVが生成される
  • APIがない
  • CSV出力までは自動化されている
  • ファイル形式が一定

このような場合です。

方法2.決まった時間にCSVを取り込む

例えば毎朝6時に、

指定フォルダを確認
↓
未処理CSVを取得
↓
取り込み

します。

毎月の処理なら、

毎月1日

などでも構いません。

定期実行が向いているケース

リアルタイム性が不要で、

昨日分を翌朝取り込む

程度で問題ない業務です。

仕組みをシンプルにできます。

方法3.Web画面からCSVを取り込む

完全自動ではなく、

管理画面
↓
CSVを選択
↓
アップロード
↓
自動チェック・登録

という方法もあります。

人がファイルを選びますが、その後の加工や登録を自動化できます。

半自動化が向いているケース

  • CSVの取得自体は人が行う
  • 取り込み前に人が確認したい
  • 誤登録のリスクを減らしたい
  • 毎日の処理ではない

このような場合です。

方法4.CSVを使わずAPI連携する

CSV取り込みを自動化しようとしている場合、

そもそもCSVが必要なのか

も確認します。

例えば、

システムA
↓
CSV
↓
システムB

という処理が、

システムA
↓
API
↓
システムB

へ変更できる可能性があります。

APIが利用できるなら、ファイルを介さない方がリアルタイム性や運用性に優れる場合があります。

CSV自動取り込みで重要な文字コード

CSVでは文字コードに注意が必要です。

代表的には、

  • UTF-8
  • UTF-8 BOM付き
  • Shift_JIS

などがあります。

例えば取り込み側がUTF-8を想定しているのに、Shift_JISのCSVが届くと、日本語が文字化けする可能性があります。

文字コードを自動変換する

取り込み時に、

Shift_JIS
↓
UTF-8

へ変換する処理を追加することもできます。

複数サービスからCSVを受け取る場合に有効です。

CSVのヘッダーを確認する

例えば想定しているCSVが、

customer_id,name,email

だったとします。

ところが、

customer_id,company_name,email

に変更されていた場合です。

そのまま取り込むのではなく、

必要な列が存在するか

を事前に確認します。

必須列がない場合はエラーにする

例えば、

顧客ID

が必須なら、それがないCSVは処理しません。

誤ったデータがデータベースへ入ることを防ぎます。

列の順番が変わっても取り込めるようにする

例えば、

顧客ID,会社名,メール

が、

メール,顧客ID,会社名

になった場合です。

単純に「1列目は顧客ID」として作ると誤登録されます。

可能であれば、ヘッダー名を基準にデータを取得します。

CSVのデータ形式をチェックする

日付

例えば、

2026/07/30

を想定しているところへ、

20260730

が来る場合があります。

変換ルールを決めます。

数値

例えば、

1,000

がCSV内でどのように表現されるか確認します。

空欄

必須項目が空欄の場合、

エラーにする

のか、

空欄のまま登録

するのか決めます。

コード

例えば、

00123

を数値として扱うと、

123

になる場合があります。

商品コードや顧客コードでは特に注意が必要です。

CSV取り込み前にデータを変換する

そのまま登録できない場合は、取り込み時に変換します。

例えば、

CSV
(株)ABC

を、

株式会社ABC

へ変換することも技術的には可能です。

ただし、表記変換には業務ルールが必要です。

列名を変換する

例えば、

CSV
client_code

を、

システム
customer_id

へ対応付けます。

この対応関係を「マッピング」と考えることができます。

CSVごとに項目名が違う場合

例えば、

システムA

商品コード
商品名
数量

システムB

product_code
name
qty

であっても、同じデータとしてマッピングできます。

CSVの重複取り込みを防ぐ

自動化する場合、非常に重要です。

例えば、

sales_20260730.csv

を一度取り込んだ後、同じファイルを再度検出した場合です。

二重登録されないようにします。

ファイル名を記録する

取り込み済みファイルとして、

sales_20260730.csv

を記録します。

同じ名前なら処理しない方法です。

ファイル内容で判定する

ファイル名だけでは不十分な場合もあります。

同じファイル名で内容が更新されることがあるからです。

その場合はファイル内容から識別情報を生成し、重複を判断する方法もあります。

データ側のIDで重複を防ぐ

より重要なのは、データそのものに一意のIDがある場合です。

例えば、

注文番号
ORDER-001

がすでに登録済みなら、同じ注文を追加しないようにします。

新規登録か更新かを決める

CSVに既存データが含まれている場合、

既存データ
↓
無視

するのか、

既存データ
↓
更新

するのかを決めます。

新規のみ登録

例えば新しい受注だけ追加する方式です。

既存データを更新

顧客マスターなどでは、

顧客IDが同じ
↓
電話番号や住所を更新

という処理が必要になる場合があります。

Upsertという考え方

システム開発では、

存在しない
→ 新規登録

存在する
→ 更新

という処理を行うことがあります。

どの項目を更新してよいのかは、業務ルールとして明確にします。

CSV取り込みエラーをどう管理する?

例えば1000行のCSVのうち、5行だけ不正だった場合です。

主に次の考え方があります。

全件エラーにする

1件でもエラー
↓
CSV全体を取り込まない

方式です。

データの整合性を重視する業務に向いています。

正常行だけ取り込む

995件
成功

5件
エラー

として処理します。

エラー5件だけ後から修正します。

どちらがよい?

業務によります。

例えば会計データなど、

一部だけ登録されると困るデータ

なら全件エラーの方が安全な場合があります。

一方、大量の商品データなどでは正常行だけ取り込む方が効率的な場合があります。

エラー内容を分かりやすく表示する

単に、

CSV取り込みに失敗しました

だけでは、担当者が修正できません。

例えば、

12行目
商品コードが存在しません

28行目
日付形式が不正です

51行目
数量が空欄です

と表示します。

エラーCSVを作る

エラー行だけ、

error_20260730.csv

として出力する方法もあります。

担当者が修正しやすくなります。

CSV取り込み結果を記録する

例えば、

日時ファイル成功失敗状態
7/30 06:00sales.csv9955一部エラー

と記録します。

履歴に残す項目

  • 処理日時
  • ファイル名
  • 処理件数
  • 成功件数
  • エラー件数
  • 実行者
  • エラー内容

などです。

自動処理では、

処理が実行されたかどうか分からない

状態を避けることが重要です。

CSV取り込み完了を通知する

例えば毎朝の処理後に、

CSV取り込み完了

成功:1,000件
エラー:0件

とメールやSlackへ通知できます。

エラーのときだけ通知する

正常時は何も送らず、

CSV取り込みエラー

ファイル:
sales_20260730.csv

エラー:
5件

と通知する方法もあります。

担当者の確認負担を減らせます。

PythonでCSV取り込みを自動化する

PythonはCSV処理と相性がよい言語です。

例えば、

CSV取得
↓
読み込み
↓
不要データ削除
↓
形式変換
↓
重複チェック
↓
データベース登録

という処理を作れます。

Pythonが向いているケース

  • CSVファイル数が多い
  • データ件数が多い
  • 加工ルールが複雑
  • 複数のCSVを結合する
  • APIと組み合わせる
  • 定期的に自動実行する
  • データベースへ登録する

複数CSVを一括取り込みする

例えば、

東京.csv
千葉.csv
埼玉.csv

をすべて読み込み、

売上一覧

へ統合できます。

拠点ごとにファイルが分かれている業務などに利用できます。

毎月作成されるCSVを自動で処理する

例えば、

2026-01.csv
2026-02.csv
2026-03.csv

をフォルダへ保存するだけで、自動的に集計できます。

WebシステムにCSV取り込み機能を追加する

既存のWebシステムへ、

[CSVインポート]

ボタンを追加する方法があります。

一般的な画面の流れ

CSV選択
↓
アップロード
↓
内容確認
↓
エラー確認
↓
登録

とします。

いきなり登録しない

安全性を高めるなら、

CSVアップロード
↓
プレビュー
↓
担当者が確認
↓
登録実行

という流れにします。

プレビューで表示する内容

例えば、

登録予定
980件

更新予定
15件

エラー
5件

と表示します。

担当者は結果を確認してから登録できます。

CSVの取り込み権限を設定する

誰でも大量データを登録できる状態は避けた方がよい場合があります。

例えば、

一般社員
CSV取り込み不可

管理者
CSV取り込み可能

と設定します。

操作履歴も残す

例えば、

2026/07/30 10:00
管理者A
customer.csv
1,000件取り込み

と記録します。

CSV取り込みとAPI連携のどちらがよい?

CSV自動化を検討するときは、APIも比較します。

CSVが向いているケース

  • 相手システムにAPIがない
  • 1日1回程度でよい
  • 大量データをまとめて処理する
  • 現在CSV運用が確立している

APIが向いているケース

  • リアルタイム連携したい
  • 数件ずつ頻繁にデータが更新される
  • ファイル管理をなくしたい
  • 相手サービスがAPIを提供している

CSVからAPIへ段階的に移行する方法もある

例えば現在、

第1段階
CSVを手動取り込み

しているなら、

第2段階
CSVを自動取り込み

へ改善します。

さらにAPIが利用できるなら、

第3段階
API連携

へ移行できます。

いきなり大きく変更する必要はありません。

CSV取り込みをデータベース化するメリット

CSVはデータを渡す手段として便利ですが、CSVファイル自体を大量に保存して検索する用途には向きません。

取り込んだデータをデータベースへ保存すれば、

  • 検索
  • 絞り込み
  • 集計
  • 編集
  • 他データとの関連付け

がしやすくなります。

例えば、

受注CSV
↓
受注データベース
↓
顧客ごとに検索
↓
売上集計

という使い方です。

CSVを取り込むだけでなく業務全体を見る

例えば現在、

CSVダウンロード
10分

Excel加工
30分

CSV取り込み
5分

なら、単純に取り込み部分だけを自動化しても5分しか削減できません。

本当に時間がかかっているのは、

Excel加工

です。

そのため、

取得
↓
加工
↓
取り込み

を一連の処理として確認します。

CSV自動取り込みの開発費用

費用はCSV形式や処理内容によって異なります。

目安としては、

内容規模
1種類のCSV取り込み小規模
CSV形式チェック小規模
データ変換小〜中規模
重複チェック小〜中規模
Web画面へのCSVインポート追加小〜中規模
定期自動取り込み中規模
複数CSV形式への対応中規模
API・DB連携中規模以上

単純なCSV取り込み機能であれば、比較的小規模な開発で対応できる場合があります。

一方、

  • 複数システム
  • 複雑な変換
  • 大量データ
  • 高度なエラー処理

が必要になると開発規模も大きくなります。

実際のCSVサンプルと業務フローを確認して見積もることが重要です。

CSV取り込みを外注するときに伝えること

CSVサンプル

最も重要です。

実際に利用しているCSVを共有します。

個人情報が含まれる場合は、ダミーデータへ置き換えても構いません。

取り込み先

例えば、

既存Webシステム
データベース
Excel
Googleスプレッドシート

などです。

処理頻度

例えば、

毎日
毎週
毎月
必要なときだけ

です。

データ件数

例えば、

100行
10,000行
100万行

では設計が異なります。

登録ルール

例えば、

同じ顧客ID
↓
更新

存在しない顧客ID
↓
新規登録

などです。

エラー時の扱い

1件でもエラーなら全部中止

なのか、

正常データだけ登録

するのかを決めます。

自動実行するか

人がアップロードするのか、サーバーで自動処理するのかを伝えます。

CSV自動取り込みで失敗しやすいケース

CSV形式が絶対に変わらない前提で作る

外部サービスの仕様変更で処理が止まる可能性があります。

ヘッダーなどをチェックします。

重複対策をしない

同じファイルを再度読み込んで二重登録される可能性があります。

エラー内容を記録しない

取り込めなかった原因を調べられません。

CSVファイル名だけで判定する

同名ファイルが上書きされる運用では不十分な場合があります。

文字コードを確認しない

日本語が文字化けする可能性があります。

Excelで開いて保存することを前提にする

ExcelでCSVを開くと、コードや日付が意図せず変換される場合があります。

すべて自動登録してしまう

重要データでは、プレビューや確認工程を残した方が安全な場合があります。

CSV取り込みを自動化した方がよいケース

次の項目が複数当てはまる場合は、自動化を検討できます。

  • 同じCSVを毎日取り込んでいる
  • CSVを毎回Excelで加工している
  • ファイル数が多い
  • データ件数が多い
  • 取り込み忘れが発生する
  • 重複登録が発生している
  • 複数システム間でCSVを受け渡している
  • 取り込みエラーの確認に時間がかかる
  • 担当者しか作業方法を知らない

hiro-dev-labのCSV自動取り込み・データ連携支援

hiro-dev-labでは、中小企業向けに、CSV取り込み業務の自動化や既存システムへのインポート機能追加に対応しています。

対応内容の例は次のとおりです。

  • CSV自動取り込み
  • WebシステムへのCSVインポート機能追加
  • Excel・CSVの一括処理
  • 複数CSVの統合
  • データ形式変換
  • 列名マッピング
  • 文字コード変換
  • 重複チェック
  • 新規・更新判定
  • エラーチェック
  • インポート結果のログ
  • 定期バッチ処理
  • PythonによるCSV処理
  • データベース登録
  • API連携
  • CSV出力機能

最初から大規模なシステム連携を行う必要はありません。

例えば、

現在
CSVを手作業で加工・取り込み

第1段階
CSV加工を自動化

第2段階
取り込み処理を自動化

第3段階
定期実行・エラー通知

第4段階
必要ならAPI連携

という段階的な改善も可能です。

Java、Python、TypeScriptなどを利用し、既存Webシステムへの機能追加や小規模な自動処理にも対応します。

千葉市内では、必要に応じて対面で現在のCSVや業務フローを確認できます。

オンラインであれば、千葉県内・全国から相談可能です。

CSV自動取り込みに関するよくある質問

CSVを自動でシステムへ取り込めますか?

CSV形式と取り込み先が分かれば、自動化できる場合があります。

毎朝決まった時間に取り込めますか?

サーバーなどで定期実行する方法があります。

CSVの列順が変わっても対応できますか?

ヘッダー名を基準に読み込むなど、ある程度変化に強い設計ができます。

文字コードが違うCSVも扱えますか?

UTF-8やShift_JISなどを確認し、必要に応じて変換できます。

同じCSVを二重に取り込まないようにできますか?

ファイルやデータの識別情報を利用して重複をチェックできます。

既存データがある場合は更新できますか?

顧客IDや商品コードなどを基準に、新規登録・更新を分けることができます。

エラー行だけ確認できますか?

エラー内容や対象行を一覧にしたり、エラーCSVとして出力したりできます。

数万件のCSVでも取り込めますか?

可能な場合があります。件数や処理内容に応じて適切な実装方法を選びます。

CSVをWebシステムからアップロードできますか?

管理画面へCSVインポート機能を追加できます。

CSVではなくAPI連携へ変更できますか?

相手サービスがAPIを提供している場合は検討できます。

CSVを毎回手作業で取り込んでいる方へ

CSVはシステム間でデータを受け渡す方法として便利です。

しかし、

CSVを出す
↓
Excelで加工
↓
別システムへ取り込む

という作業を毎日人が行う必要はありません。

処理ルールが決まっていれば、

CSV取得
↓
形式チェック
↓
データ変換
↓
重複確認
↓
自動登録
↓
処理結果を通知

まで自動化できる可能性があります。

また、CSVを自動化しようとした結果、

そもそもAPIで直接つなげられる

と分かる場合もあります。

重要なのはCSV取り込み自体を目的にするのではなく、

システム間で発生している人手の転記作業をなくすこと

です。

hiro-dev-labでは、現在のCSVサンプルと実際の作業手順を確認し、

Python・Webシステム・API連携などから、現在の業務規模に合ったCSV自動取り込みの仕組みを提案・実装します。

CSVの自動取り込み・データ連携について相談する

Contact

お問い合わせ

システム導入、Webアプリ開発、AI導入、業務委託での開発支援などのご相談を受け付けています。

要件が固まっていなくても大丈夫です。使う方・運用する方の視点で整理し、分かりやすく進めます。

まずはお気軽にお問い合わせください。