Hinzufügen eines bestimmten Autofilters zu einer Spalte
Ich versuche, einen Filter für eine Spalte festzulegen. So habe ich es in Interop gemacht:
private void CheckMasterFile(string path) {
var xlApp = new Excel.Application();
var xlWorkbook = xlApp.Workbooks.Open(path);
Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
foreach (var project in projects) {
if (string.IsNullOrEmpty(project.ProjectID.Value)) {
continue;
}
var xlRange = xlWorksheet.UsedRange;
if (xlWorksheet.AutoFilter != null) {
xlWorksheet.AutoFilterMode = false;
}
xlRange.AutoFilter(Field: 2, Criteria1: project.ProjectID.Value);
var result = xlRange.SpecialCells(Excel.XlCellType.xlCellTypeVisible, Type.Missing);//only shows filtered values
double sum = 0;
foreach (Excel.Range row in result.Rows) {
if (row.Cells[2, 2].Value2() != null) {
if (!NOT_ALLOWED_RUBRIQUES.Contains((string)row.Cells[2, 8].Value2())) {//check if rubrique is allowed or not
//finish method
}
}
}
}
xlWorkbook.Close(SaveChanges: false);
xlApp.Quit();
}
Aber die einzige Möglichkeit, mit dem Autofilter in EPPlus etwas zu tun, besteht darin, ihn zu aktivieren oder zu deaktivieren und keine Spalte nach einem bestimmten Wert zu filtern. Etwas wie das
sheet.Cells["A RANGE HERE"].AutoFilter = true;
Ich versuche hier also, eine große Excel-Datei nach einem bestimmten Wert zu filtern und dann nur die Zeilen mit diesen Werten anzuzeigen.