我想删除特定关键字后面的每一行,也包括关键字行。有人可以帮我用C#代码。
示例: - 我没有附加虚拟excel文件,因为我是从移动设备发布的。
我在Excel中有一句话: - "你好用户"所以我必须在此之后删除所有数据行,包括它。最重要的是,这些数据不在固定线上,它可以在任何行号上....假设现在我已经在第10行给出了它,所以它可能在下一个文件中的第12行。
行号数据 10."你好用户" 11. A 12. B. 等等 。 。 。 。
答案 0 :(得分:1)
我认为此代码适合您:
const string magicWord = "HelloUser";
Excel.Application app = new Excel.Application();
Excel.Workbook workbook = app.Workbooks.Open(@"myWorkbook.xlsx");
Excel.Worksheet worksheet = workbook.Sheets[1]; //Excel has no zero based index!!!
int magicWordRowIndex = Int32.MaxValue;
//Here we find your magic word. But we can't delete the rows here, so just save the index
for (int row = 1; row <= worksheet.Rows.Count; row++)
{
for (int column = 1; column <= worksheet.Columns.Count; column++)
{
if (worksheet.Rows[row][column] == magicWord)
{
magicWordRowIndex = row;
break;
}
}
}
//Now we run reversed, because else our magicWordRowIndex become invalid if we delete rows
for (int row = worksheet.Rows.Count; row >= magicWordRowIndex; row--)
{
((Excel.Range) worksheet.Rows[row, Missing.Value]).Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
}
Actualy我无法测试它但是应该做这个工作,也许你需要做一些小改动并使其符合你的需要。
首先它找到你的魔术词,它在开头是硬编码的。找到这个单词后,我们将从下到上删除所有行到现有单词。
请注意,您需要引用:Microsoft.Office.Interop.Excel