sintassi senza dichiarazione delle colonne cioé senza creare una classe con le proprietà di ciscun campo
var excelFile = new ExcelQueryFactory("PATH\FILE EXCEL"); creo oggetto tipo ExcelQueryFactory
var nomequery = from variabile in excelFile.Worksheet("NOME SCHEDA") creo oggetto query tipo IQueryable
where condizione
selezione finale (comando SELECT in SQL) in Linq si mette alla fine
select variabile["eventuale colonna"]; creo la query indicando la colonna
select variabile; creo la query prendendo tutto *
condizioni: si usano gli operatori relazionali e/o condizionali
sintassi con dichiarazione delle colonne creando prima una classe di dichiarazione con le proprietà di ciascun campo
public class ColonneExcel classe di dichiarazione
{
public string NomeColonna1 { get; set; }}
.....
var excelFile = new ExcelQueryFactory("PATH\FILE EXCEL"); creo oggetto tipo ExcelQueryFactory}
var nomequery = from variabile in excelFile.Worksheet<ColonneExcel>("NOME SCHEDA") creo oggetto query tipo IQueryable<ColonneExcel>where condizione si usa nelle condizioni variabile.NOMECAMPO (invece di variabile["NOME CAMPO"]
selezione finale (comando SELECT in SQL) in Linq si mette alla fine
select variabile.NOMECAMPO; creo la query indicando la colonna
select variabile; creo la query prendendo tutto *
esempio: estraggo dei dati da un file Excel fatto da Nomi e Titoli e li visualizzo in console (senza dichiarazione dei campi)
static void Main(string[] args)
{
string pathToExcelFile = @"C:\Users\Downloads\ArtistAlbums.xlsx";}
var excelFile = new ExcelQueryFactory(pathToExcelFile);
var artistAlbums = from a in excelFile.Worksheet("Sheet1") select a;
foreach (var a in artistAlbums)
{Console.WriteLine(string.Format("Artist Name: {0}; Album: {1}", a["Name"], a["Title"]));}
metodi:
esempio: estraggo la seconda riga da una query da un file Excel e visualizzo in console solo il dato del secondo campo
public class ArtistAlbum
{
public string Name { get; set; }}
public string Title { get; set; }
string pathToExcelFile = @"C:\Users\Downloads\ArtistAlbums.xlsx";}
var excelFile = new ExcelQueryFactory(pathToExcelFile);
var artistAlbums = from a in excelFile.Worksheet<ArtistAlbum>Sheet1") where a.Name == "Elisa" select a;
Console.WriteLine("Artist Titolo: {0}", artistAlbums.ToList()[1].Title);dopo la conversione in List occorre mettere l'ID della riga (conteggio incomincia per 0)
esempio: somma la colonna del Totale di una query con where
var contadate = (from x in excelFile.Worksheet<ArtistAlbum>("Albun") where x.NetworkName == "Elisa" select x.Nome).ToList().Count.;
sintassi:
(from a in ... ).Sum(a => a.nomecampo); si usa l'operatore => riferimento
esempio: somma la colonna del Totale di una query con where
int artistAlbums = (from a in excelFile.Worksheet<ArtistAlbum>(sheetName) where a.Name == "Elisa" select a).Sum(a => a.Totale);
int artistAlbums = (from a in excelFile.Worksheet<ArtistAlbum>(sheetName) where a.Name == "Elisa" select a.Totale).Sum(a => a);
esempio: query selezionando la colonna dei Nomi tolto duplicati
var contanomi = (from x in excelFile.Worksheet<ArtistAlbum>("Albun") select x.Nome).Distinct();