通过编程方式使用Excel对文件进行更改会提示用户保存更改
本文关键字:提示 保存更改 用户 文件 编程 方式使 Excel | 更新日期: 2023-09-27 18:10:08
我有以下方法,如果行中的单元格包含特定值,则从文件中删除行:
foreach (Excel.Range row in workSheet.UsedRange.Rows)
{
foreach (Excel.Range cell in row.Columns)
{
if (cell.Value == null)
continue;
string colVal = cell.Value.ToString().ToLower();
if (colVal.Contains(".zip") || colVal.Contains("bin") || colVal.Contains("debug") || colVal.Contains("release"))
{
Console.WriteLine(colVal);
rowIndices.Add(rowIndex);
}
}
rowIndex++;
}
rowIndices = rowIndices.OrderByDescending(i => i).ToList();
foreach (int i in rowIndices)
{
string rangeFormat = String.Format("{0}:{1}", "A" + i, "F" + i);
workSheet.get_Range(rangeFormat, Type.Missing).Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
}
workBook.Save();
我传入了一个.csv文件的路径,当代码到达上面代码片段的最后一行时,弹出一个对话框,询问您是否要保存更改,就好像您手动打开Excel,进行了更改,然后试图关闭它一样。如果我打开Excel并将。csv保存为。xlsx文件,并在文件上重新运行此工具,它不会提示用户。
有谁知道我该怎么预防吗?我使用WinMerge在2个文件夹上生成一个报告(保存为CSV),然后在报告上运行这个工具。如果不需要手动将报告重新保存为"实际"Excel类型就好了。
您可以在保存前将DisplayAlerts
属性设置为False
。
一样:
Microsoft.Office.Interop.Excel.Application.[Your Excel App Variable Name].DisplayAlerts = False