Ich bin in der ungewöhnlichen Position, zwei verschiedene Vorlagen für einen Excel-Upload zu haben, einen, der "benutzerfreundlich" ist und einen, der maschinell erzeugt wird. Daher sind die Spalten-Datenheader unterschiedlich und es ist schwierig, sie auszurichten.Referenzieren von Spalten in LinqToExcel mit Ordinalposition
Als solche möchte ich auf die Spaltenzuordnungen verweisen, die die Ordinalposition und nicht den 'Namen' der Spalte verwenden. Im Moment habe ich dies:
var excel = new ExcelQueryFactory(excelFileName);
excel.AddMapping<Student>(x => x.FirstName, "First Name");
excel.AddMapping<Student>(x => x.LastName, "Last Name");
excel.AddMapping<Student>(x => x.LastFour, "Last 4 Student ID");
excel.AddMapping<Student>(x => x.LastDate, "Last Date");
und ich möchte so etwas tun:
var excel = new ExcelQueryFactory(excelFileName);
excel.AddMapping<Student>(x => x.FirstName, "A");
excel.AddMapping<Student>(x => x.LastName, "C");
excel.AddMapping<Student>(x => x.LastFour, "G");
excel.AddMapping<Student>(x => x.LastDate, "H");
wo die Buchstaben die Spaltenreferenzen in Excel sind.
Gibt es eine Möglichkeit, dies zu tun?
Dies ist die, die ich tatsächlich am Ende verwendet, weil es so nah an meinem ursprünglichen Code war. Sie können jedoch keine Indexer mit generischen IEnumerables verwenden. Ich brauchte spaltennamen.ElementAt (1) –
@BillSempf Ich weiß, dass ich zu spät komme, aber um das 'ElementAt()' Problem zu lösen, können Sie immer einen Aufruf von 'ToList()' direkt danach 'GetColumnNames() 'Nein? –