私はINTEROPを使用してExcelに接続するためにC#を使用しています。列をループして属していない行を削除する
もしINTEROPを知らないのなら、これはあなたがこの質問に答えるのを止めるべきではありません。私は次のためのアルゴリズムを把握しようとしている私の脳をラッキングしています:
は、私がリストを持っている私は、文字列にstring1="ALEX"
があるとします。
AAAA
ALEX
ALEX
LIZA
LIZA
またはリストを指定できます
ALEX
ALEX
ALEX
LIZA
NANCY
すべての文字列を削除する必要があります。NOT== ALEX
これは長すぎるので、これを1つずつ実行したくないです
リストは常にソートされています。私は取得する必要がある文字列のリストで開始位置と終了位置を取得したいこれがまったく機能していない
if (cell.Value2.ToString()!= email && !foundStart) {
startpos = rCnt;
foundStart = true;
}
else if (cell.Value2.ToString() != email && foundStart) {
endPos = rCnt;
deleteRange = xlWorkSheet.get_Range("A" + startpos + ":" + "CO" + endPos, Type.Missing);
deleteRange = deleteRange.EntireRow;
deleteRange.Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
foundStart = false;
}
:
を取り除く私はすべての行を通って、ループの内部に入るループを持っています。助けてください!あなたのガイダンスは、単純なアルゴリズムまたはリストが常にソートされている場合、私は削除するリストの要素を見つけるためにバイナリ検索を使用し、
リストはAAAA、ALEX、ALEX、LIZAある場合は、最初のものを削除し、ちょうど与えることで結構です何かを削除するために、私は削除するRANGEを与える必要があることに注意してください代わりの1 –
によって要素の1を削除してください1:1の範囲ですが、AAA、AAA、ALEXの場合は1:2を削除する必要があります –
おそらく私は間違いですが、その範囲は私には納得できません。 startPosとendPosは右の行番号であるはずですか?そして、これは、例えば、get_Range( "A1:CO3")?これは有効な範囲ですか? – Steve