@obscurity
Pliki xlsm to ''must have'. Nie da się tego wyeliminować. Plik bazowy - zawierający strukturę i wszystkie funkcje - musi być.
Pliki te posiadają jeden arkusz na dane wejściowe. Gdy je zmienimy w 10 innych arkuszach zmieniają się wartości komórek. Większość korzysta z makr/funkcji.
Moim zadaniem jest odpalenie tych wszystkich formuł z konkretnytmi danymi.
Np wpisanie w komórkę A10 wartości "3" wymusza przeliczenie wszystkich komórek, które pośrednio lub bezpośrednio z tej komórki korzystają
Co masz na myśli "komunikował się z Excelem"? W jaki sposób?
@jurek1980
a) Rozwiązanie nr 1
Jak to rozwiązuje mój problem? Jak się pozbędę makr i funkcji to jak dostanę wyliczone przez nie dane? Dostane to co jest domyślnie w szablonie. Jak zmienie komórkę A10 to nic się nie zmieni w innych arkuszach.
b) Opcja nr 2
Nie ma szans... jest to (śmiało mogę powiedzieć) kilka tysięcy formuł na każdy pojedynczy plik.... Te xlsm'y były tworzone przez ostatnich kilka lat... nie ma szans że uda się to przepisać... dodatkowo te pliki są ciągle aktualizowane (zmieniane formuły)... W takim przypadku wszystko co nowe trzeba by od nowa przenosić.
c) Opcja 3
Tylko, że przetwarzanie pliku XLSM to tylko 1/10 całej aplikacji... reszta musi być typowo webowa... Ogólnie z Excela mamy dane i później te dane są wykorzystywane do wielu modułów.
d) Opcja 4
to najsensowniejsze o ile da się zrobić komunikację dwustronną.
Czyli Excel pobierze Dane wejściowe z bazy, przeliczy je i wyśle wyniki z wszystkich arkuszy ponownie do bazy (inna tabela).
Oczywiście wszystko MUSI być bez udziału klienta.... Zadanie użytkownika to tylko kliknięcie na 1 przycisk w obrębie strony www i wtedy te czary mają się zadziać.
Oczywiście jak kliknie w link na telefonie, to musiałoby to się wszystko na serwerze uruchomić. Raczej nie widze możliwości?
jurek1980 - reasumując.
Tutaj właśnie klient nie ma dostępu do pliku XLSM.
Plik XLSM jest bazą i zbiorem funkcji (obliczeń). Uzytkownik ma kliknąć na przycisk i to ma mu się przeliczyć.
Najbardziej trywialny przykład.
Klient widzi na stronie www tabelkę:
Wysokość | Szerokość | Akcja
3000mm 4000mm < button1 >
1500mm 2000mm < button2 >
300mm 7500mm < button3 >
Wysokość i szerokość to moje dane wejściowe przechowywane w bazie.
Po kliknięciu na < button2 > musi zostać otwarty plik xlsm,
w komórkę A2 Arkusz1 ma zostać wpisana wartość 1500
w komórkę A3 Arkusz1 ma zostać wpisana wartość 2000
Wstawienie tych wartości powoduje przeliczenie wszystkich komórek, które w sposób bezpośredni lub pośredni korzystają z komórek A2 i A3
Czyli np
w komórce B10 Arkusz2 mamy funkcję liczącą pole (na podstawie komórek A2 i A3 z Arkusz1)
w komórce B11 Arkusz2 mamy funkcję liczącą obwód (na podstawie komórek A2 i A3 z Arkusz1)
Następnie muszę wszystko z określonych zakładek (czyli wyniki obliczeń) zapisać ponownie do bazy.
Akcja klienta sprowadza się TYLKO do kliknięcia w < button >