Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Excel a spouštění skriptu v naplánované úloze
říjen 18
Excel a spouštění skriptu v naplánované úloze
To byla zase pikoška :-) Zákazník má nějaký informační systém, který obsahuje skript na generování nějakých souhrnů do .XLS souboru. Skript funguje v pohodě, pokud se spustí ručně. Pokud se spustí ale jako naplánovaná úloha (všechno stejné, stejný účet apod.) - Scheduled Task - tak ale nejede. Průzkum skriptu pomocí nástroje Process Monitor ukázal, že se v pohodě pouští, ale když se volá Excel, skončí to s chybou FILE_NOT_FOUND nebo STATUS_FILE_DELETED (0xC0000123, hr=C0000123).

Když skriptujete Excel, běží to jako COM komponenta a prostě to nedělalo co mělo. Naštěstí jsem našel řešení tady. Je potřeba jen vytvořit adresář:

%windir%\SysWOW64\Config\SystemProfile\Desktop

Zřejmě to nějak šmejdí po systémovém profilu. Jenže Excel byl jen 32-bitový na Windows Server 2008 R2 Terminal Serveru (Remote Desktop Session Host). Takže zřejmě ten x32 COM server nejprve něco očuchával ve svém profilu (ještě než pustil Excel pod účet té naplánované úlohy) a hledal si něco na ploše. Což se mu nepovedlo. A problém byl na světě.

Comments

spouštění Excelu z neinteraktivního procesu

Joo, před pár měsícema jsme potřebovali v jedný .NET webový aplikaci načíst XLS a vygenerovat bitmapu náhledu. Kluci to naskriptovali, ale na pokusným W2008 x64 serveru, kde byl i Excel (2003), se mi to prostě rozchodit nepodařilo (na XP jo), i když jsem Googlil snad i ptákem a dělal různý další skopičiny než adresáře. Možná jsme mohli zkusit novější Excel. Nakonec jsem jim na to nainstalovat x86 virtuálku (stejne bych nějakou musel, na produkční server by to nešlo), ale výsledek stejně stál za hovno. Kromě toho MS to velmi nedoporučuje: http://support.microsoft.com/kb/257757/en-us
 
Nakonec jsme za nekřesťanský peníze koupili: http://www.aspose.com/categories/.net-components/aspose.cells-for-.net/default.aspx
Borek on 18.10.2011 20:25

Add Comment

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Type number two as digit *


Semhle vyplňte číslici dvě. Předchozí antispemové pole nefunguje úplně dokonale, zdá se, že jsou i spamery, které pochopily, že je občas potřeba vyplnit autora :-)

Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments