Skripty v Pythonu 002 V 4 data a

  • Slides: 15
Download presentation

Skripty v Pythonu 002 V 4 data a výstup do MS Excelu Jaroslav Šmarda

Skripty v Pythonu 002 V 4 data a výstup do MS Excelu Jaroslav Šmarda

Osnova 1 2 V 4 Data objektový přístup do DBV databáze Objekt Excel. Workbook

Osnova 1 2 V 4 Data objektový přístup do DBV databáze Objekt Excel. Workbook – data do Excelu 3 Uložení souboru na serveru a na klientské stanici

Export údajů z DCH do XLSX • Zadání: • denní výkaz, tj. položky souboru

Export údajů z DCH do XLSX • Zadání: • denní výkaz, tj. položky souboru PDNYV viditelné v režimu OPRAV • položka „pracv“ ze souboru PZARAZX • nová položka „ranni“ z položek v PDNYV (odpracz – odpracoz - odpracnz)

V 4 Data -objektový přístup do DBV databáze # Definice souborů a databáze: class

V 4 Data -objektový přístup do DBV databáze # Definice souborů a databáze: class Pdnyv(DBVData): file. Name = u'PDNYV' class Pzarazx(DBVData): file. Name = u'Pzarazx' fields = 'oscis, cicin, pracv' class DCH(DBVDatabase): data = [Pdnyv, Pzarazx] # Databáze v class main: class main(DBVApp): db = DCH

V 4 Data -objektový přístup do DBV – 1/2 # Čtení vět souboru Pdnyv

V 4 Data -objektový přístup do DBV – 1/2 # Čtení vět souboru Pdnyv včetně memo položky „pozn“ for pd in self. db. Pdnyv(DBVBLOBs='pozn'):

V 4 Data -objektový přístup do DBV – 2/2 # Čtení vět souboru Pdnyv

V 4 Data -objektový přístup do DBV – 2/2 # Čtení vět souboru Pdnyv včetně memo položky „pozn“ pdnyv. Polozky = ['oscis', 'cicin', 'den', 'dt', 'pracv', 'prijm', 'zamd', 'duvodt', 'duvod 2 t‘] for pd in self. db. Pdnyv(DBVBLOBs='pozn'): row 1 = [] for a in pdnyv. Polozky: v = pd. __dict__[a] if a==‘pozn‘: if not v. isempty: v = v. value else: v = None row 1. append(v)

Speciální atributy třídy • Speciální atribut __dict__ --> slovník jmenného prostoru třídy • Pro

Speciální atributy třídy • Speciální atribut __dict__ --> slovník jmenného prostoru třídy • Pro 1. větu v souboru Pdnyv platí: pd. __dict__ --> {‘oscis': 111, ‘cicin': 0, ‘den‘: ‘ 2016 -05 -01‘, …. } • Dotaz na hodnotu oscis: if pd. oscis == 111: if pd. __dict__[‘oscis'] == 111: # toto používáme

Objekt Excel. Workbook – 1/2 # Otevření existujícího sešitu nebo vytvoření nového a vytvoření

Objekt Excel. Workbook – 1/2 # Otevření existujícího sešitu nebo vytvoření nového a vytvoření prázdného listu 'pdnyv' from v 4 data. exceldata import Excel. Workbook wbk = Excel. Workbook(exl. Server. Cesta) wbk. load(exl. Server. Cesta, False) et = wbk. new. Table('pdnyv')

Objekt Excel. Workbook – 2/2 # Vložení nové tabulky do listu 'pdnyv‘ - seznam

Objekt Excel. Workbook – 2/2 # Vložení nové tabulky do listu 'pdnyv‘ - seznam řádků a každý řádek je seznam položek takových typů, které lze dosadit do excelovských buněk včetně None (prázdná buňka) et. rewrite(data) # Uložení výsledného. XLSX souboru s plnou cestou exl. Server. Cesta wbk. save(exl. Server. Cesta)

Soubor na server # Získání adresáře Report v Other. Data: from v 4 core.

Soubor na server # Získání adresáře Report v Other. Data: from v 4 core. world import my. World other. Data = my. World. otherdata. Dir('Report') # Jméno souboru je Pnyv. RRRRMMDD. xlsx: exl. Name = 'Pdnyv' + dnes() + '. xlsx' # Cesta k souboru na serveru: exl. Server. Cesta = os. path. join(other. Data, exl. Name)

XLSX soubor na klienta # Modul Vm. Dev. FSO: import Vm. Dev. FSO #

XLSX soubor na klienta # Modul Vm. Dev. FSO: import Vm. Dev. FSO # Otevření file systému na klientské stanici fso = Vm. Dev. FSO. Dev. Client. FSO() # Jméno souboru v c: Report: exl. Name = 'Pdnyv' + dnes() + '. xlsx' exl. Klient. Cesta = os. path. join('c: Report', exl. Name) # Kopie ze serveru na klientský počítač fso. Copy. File. To. Client(exl. Server. Cesta, exl. Klient. Cesta)

ODBC driver <-> skript v Pythonu Výhody/ ODBC driver nevýhody ODBC + nepotřebujeme Python

ODBC driver <-> skript v Pythonu Výhody/ ODBC driver nevýhody ODBC + nepotřebujeme Python - při složitější věcech potřebujeme SQL nebo VB + XLSX soubor leží přirozeně na klientské stanici - XLSX soubor nelze takto vytvořit na serveru + nezruší se další prvky v XLSX souboru jako jsou kontingenční tabulky apod. - nelze automatizovat

Prezentace uložena na W: . .

Prezentace uložena na W: . .

Děkuji Jaroslav Šmarda smarda@vema. cz / www. vema. cz

Děkuji Jaroslav Šmarda smarda@vema. cz / www. vema. cz