176340 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

風来の森いろいろ日記

風来の森いろいろ日記

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X
Mar 20, 2024
XML
テーマ:自作ソフト(3)
カテゴリ:C# VB
フォルダ内にある複数のエクセルファイル(または複数シート)のデータを結合して、CSVで出力するソフトを作ってみたよ。
同じ書式(列の作りが一緒)のエクセルデータを一つにできます。
そもそもエクセルにそういう機能ってあるのかな?知らないから作った。
というか会社で頼まれて作った。
エクセルおじさんが多い会社で、なにかというとエクセルでデータを作ってるみたいなんだけど、月ごとに別のシートに分けてデータを記入していたり、部署ごとにファイルが分かれている。で、データがたまったころになって、通年でみたいとか、会社全体の数字がみたいとか言い始める。これを誰かがコピペして一つにくっつけたりしているらしい。
そういうことがちょいちょいあるらしくて、マクロでなんとかならないかという相談を受けた。
もうちょいデータの扱い方を考えてほしい。
普段エクセルVBAは使わないので、エクセルのエディタで作るのはものすごくイヤ。
そんなわけでC#で作った。エクセルのデータは、ExcelDataReader.dllを使って読み込むことにした。


だいたいこんな感じのことができる。
これはシート1番目に2020年度の経費のデータ


2番目は2021年度の経費のデータ。データは両方とも5行目からで、カラム名は4行目という作り。


これを一つにくっつけると、下のようになる、その際どのシートのデータかがわかるように、末尾の列にシート名が挿入される。

これは一つのファイルでの処理だが、フォルダ内のすべてのファイルのデータをくっつけることもできる。その際ファイル名を列名として挿入することもできる。
結合するシートを〇番目~〇番目という感じに指定することもできるし、特定のセルの文字列を指定して、その文字があるシートのみ結合させることもできるので、他の書式が混ざっていてもある程度判別させることもできる。
ただ、結合したデータが数万件になると表示に時間がかかっていまう。表示させずにCSV出力させるように作ればいいのだが、需要があるとも思えないのでめんどくさいので、もうイヤ。

もし使う方いたらダウンロードはこちら
ベクター
使い方はこちら





お気に入りの記事を「いいね!」で応援しよう

Last updated  Mar 20, 2024 03:25:01 PM
コメント(0) | コメントを書く



© Rakuten Group, Inc.
X