エクセルの重複を除いてデータを一つ一つ取り出す方法

例えば、エクセルの列から重複したデータを取り除いた状態で、存在する項目だけを打ち出す方法はありますでしょうか?以下の場合、りんご、みかん、ぶどうだけをそれぞれ、String型の変数に入れる方法を知りたいのですが、お分かりになりますでしょうか?Remove Duplicate Rowsはバージョンが古いため、使用できません。#NET関数を使用する方法でも大丈夫です。
B列
りんご
りんご
みかん
みかん
みかん
ぶどう
ぶどう

Excelから抜き出したB列をDatatableに格納し、For each rowで回しながらListに追加するのはいかがでしょうか。
For each row内部のIFブロックにて、すでにListにある場合は追加しない、という判断を入れればよいかと思います。(Listにない場合はlst.IndexOf(row(0).ToString) の結果が-1になります)

Assign
lst = new List(of String)

For each row in dt
If lst.IndexOf(row(0).ToString) = -1
then Add to collection
Collection:lst
Item:row(0).ToString

@ak_mariam

具体的なWFの事例 (xamlファイル) をご教示頂けますと幸いです。

@361oosugiさん
どこまで作られたのでしょうか?何を試してダメだったのでしょうか。
最終的にやりたいことが何なのかずれていることがよくあるので、
確認するために、作ったところまでをアップしてみてください。
もしかするとstringに入れる、ではなく、もっと適した方法があったりするかもしれませんよ。

ちなみに、DefaultView.ToTableとするとユニークな情報を取得できます。
たとえばdataTable1(例)にExcelを取り込んだあと、
dataTable1.DefaultView.ToTable(true, “B列のタイトル”)
とするとdistinctな状態になったDataTableが戻ってきます。

あとはfor each rowで取ってきた値をlistに入れるなり、なんなりすればOKかと。

類似の情報がありますので検索してください。

2 Likes