判定するのはヘッダーではなく、データ行です
unused という列名が付いていても、全データ行が空なら削除します。逆に列名が空でも、どこか1行に値が入っていれば残します。見出しの見た目ではなく、列の実データで判断します。
データ行が1行もないCSVでは「この列が本当に空なのか」を判断できないため、削除処理を行いません。ヘッダーだけのテンプレートを全部消してしまうより、判定できない状態として止める方が安全だからです。
無料Webツール
全行が空白の列を検出して削除し、整理したCSVを出力します。
テンプレート由来の空列が何十本も残っているCSVから、「データ行が全部空の列」だけを落とします。ヘッダー名が入っていても、中身が全件空なら削除対象です。
unused という列名が付いていても、全データ行が空なら削除します。逆に列名が空でも、どこか1行に値が入っていれば残します。見出しの見た目ではなく、列の実データで判断します。
データ行が1行もないCSVでは「この列が本当に空なのか」を判断できないため、削除処理を行いません。ヘッダーだけのテンプレートを全部消してしまうより、判定できない状態として止める方が安全だからです。
trimモードでは " " のようなスペースだけのセルも空扱いです。emptyモードでは完全な空文字だけが空で、スペースは値として残ります。外部システムから来たCSVで余計な空白が混ざる場合は、この違いが効きます。
0、false、- のように文字が入っていれば、その列は残ります。「値が意味的に無いか」ではなく「セルが空か」を見ているからです。ゼロだけの列を消したい場合は別の条件が必要です。
ある行だけ末尾の列数が足りない場合、その存在しないセルは空として判定します。ただし別の行に値が1つでもあれば、その列全体は残ります。
削除対象だけを抜き、残した列は元の順番のまま出力します。後続処理が列順へ依存している場合でも、不要列を消したことで残存列同士の順序が入れ替わることはありません。
セル内容のtrimや値の置換も行いません。空列を落とす以外の整形はしないので、「余計な列だけ消して、残りはそのまま渡したい」という用途に絞って使えます。