Dowolna funkcja .Net lub kwerenda linq w celu usunięcia danych

Czy jest jakaś biblioteka .net dostępna do rozpakowywania danych programu Excel? Obecnie używam struktury LinqToExcel do odczytu danych z arkuszy kalkulacyjnych, więc nie jestem pewien, czy są dostępne dynamiczne kwerendy linq do wykonania polecenia unpivot. Dziękujemy za wszelkie sugestie. BTW, szukam rozwiązania, które mogłoby obsłużyć wiele kolumn.

Przykładowa tabela oryginalna

Product Location  Customer1   Customer2   Customer3
  A        X          10         20         100

Tabela Destinaton

Product Location Customer    Demand
  A        X      Customer1    10
  A        X      Customer2    20
  A        X      Customer3    100

questionAnswers(1)

yourAnswerToTheQuestion