2012-03-16 14 views
6

Chciałbym umożliwić użytkownikowi wprowadzenie niestandardowej formuły w komórce w programie Excel, która będzie subskrybować dane dostarczone przez zewnętrzną aplikację .NET. Na przykład, użytkownik może wprowadzić ...Jaka jest odpowiednia technologia do pobierania danych do arkusza kalkulacyjnego Excela za pomocą formuły ze źródła .NET?

=getCurrentValue("ABC") 

Jest to zewnętrzny .NET (C#) aplikacji, która jest określenie wartości „ABC” każdą minutę.

Komórka powinna wyświetlać wartość początkową "ABC" z zewnętrznej aplikacji i aktualizować, gdy aplikacja zewnętrzna wyśle ​​nową wartość.

W przeszłości sądzę, że zewnętrzna aplikacja byłaby serwerem DDE, a formuła byłaby formułą klienta DDE, ale DDE najwyraźniej nie działa. Jaka jest "poprawna" technologia do użycia w tym celu?

Należy pamiętać, że arkusz kalkulacyjny musi pobierać dane za pośrednictwem formuły. Informacje nie przechodzą do stałego pliku szablonu Excela, ale do dowolnego arkusza kalkulacyjnego, w którym użytkownik wprowadza formułę.

Dzięki,

John

+0

FWIW, myślałem, że pytanie było bardzo wyraźnie aske d, i stwierdził, że nadzwyczaj wysoki poziom nieistotności obecnych w nieakceptowanych odpowiedziach jest całkowicie niewiarygodny. – BrainSlugs83

Odpowiedz

5

Excel RTD (Real Time Data) jest zamiennikiem dla DDE. Pozwala przesyłać wartości do komórki, gdy tylko będą dostępne aktualizacje. Jeśli proces dostarczania aktualizacji jest aplikacją zewnętrzną, skonfigurowanie kanału WCF między serwerem RTD i aplikacją zewnętrzną powinno umożliwić podawanie aktualizacji w czasie rzeczywistym do programu Excel.

Oto kilka linków:

+0

Jest więcej jego artykułów, zobacz listę na http://weblogs.asp.net/kennykerr/pages/My-Articles.aspx – quetzalcoatl

-1

można komunikować się z arkuszami Excela poprzez Excel API:

new Microsoft.Office.Interop.Excel.Application();

+0

Można jednak uważać pliki CSV. Większość dostawców hostingu nie zezwala na Office na serwerze, dzięki czemu możesz pisać do pliku CSV. Chociaż można zrobić znacznie więcej przy użyciu Microsoft.Office.Interop.Excel, można nawet tworzyć obszary wydruku i wykresy. – ydd1987

+1

Wygląda na to, że interfejs programu Excel jest przeznaczony do automatyzacji zadań programu Excel lub przesyłania danych do programu Excel. Może wywołać na przykład żądanie DDE w programie Excel. Poprawiłem pytanie, aby było jasne, że potrzebujemy programu Excel do pobrania danych (chociaż aktualizacje zostaną zniesione po zasubskrybowaniu programu Excel). DDE byłoby idealne, ale wydaje się, że nie jest już zalecane. Czy istnieje mechanizm do rejestrowania formuły/wywołania zwrotnego/czegoś za pośrednictwem współdziałania? Jeśli tak, to możesz wskazać mi przykład? –

+0

Coś takiego? oRng = oSheet.get_Range ("C2", "C6"); oRng.Formula = "= A2 & \" \ "& B2"; – ydd1987

Powiązane problemy