Excelの自動化プログラムを構築していますが、条件付きで特定の行を削除する必要があります。私は224行の特定のパブリッシャーを持っています。 224行の中で160行は無効で、160行は削除する必要があります。しかし、行を繰り返して条件付きで削除すると、160行だけが削除されます。シートには常に22行が残っています。理由が分からないのですか?コードは以下のように書かれています。Excel Interop行を繰り返し処理し、一部の行が欠落している行全体を条件付きで削除します。
List<string> removeList = listofRemovalOfSpecificPublishers;
string path = "C:\\Library Automation\\Source\\publishers.xlsx";
var workBookData = GetWorkBookData(path, "Booking Publishers Info");
mWSheet1 = workBookData.mWorkSheet1;
Microsoft.Office.Interop.Excel.Range xlRange;
xlRange = mWSheet1.UsedRange;
for (int i = 1; i <= xlRange.Rows.Count; i++)
{
string publisher = Convert.ToString(xlRange.Cells[i, 3].Value); //publisher column
string bookState = Convert.ToString(xlRange.Cells[i, 8].Value); //status column
if (carrier != "Publisher" && Convert.ToString(xlRange.Cells[i, 1].Value) != "Status")
{
if (removeList.Contains(publisher) && bookState == "INVALID")
{
xlRange.Cells[i, 1].EntireRow.Delete(null);
}
}
}
workBookData.mWorkbook.RefreshAll();
workBookData.mWorkbook.Save();
workBookData.mWorkbook.Close(Missing.Value, Missing.Value, Missing.Value);
私は欠けているものがあるかどうかを知る必要があります。あなたの助けと時間をありがとう。
行を削除するときは、下から上に向かって作業する必要があります。 –
それを得ました!ありがとう、私はそれをテストします! – thilanka1989