Izvoz XML podataka. Pretvori xls u xml Pretvori u xml datoteku

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Već dugo radim s XML datotekama, ali tek sada sam se zapitao: Kako mogu kreirati i uređivati ​​XML datoteke u MS Excelu koristeći standardne alate? Excel je praktičan i intuitivan alat za kreiranje, uređivanje i obradu raznih podataka. Excel se uči u školi i, vjerojatno, ne postoji osoba koja zna raditi na računalu, a ne poznaje osnove rada u Excelu. Stoga je, po mom mišljenju, ovo najprikladniji alat koji se može preporučiti obični korisnici za stvaranje i uređivanje podatkovnih datoteka za različite aplikacije, uključujući web aplikacije. Kod kuće imam instaliran MS Excel 2013 i na njegovom primjeru opisat ću jednostavne postupke koje je potrebno izvršiti prilikom izrade XML podatkovne datoteke u Excelu. Mislim da u više ranije verzije Excel će također raditi. Za izradu XML podatkovne datoteke poduzmimo nekoliko jednostavnih koraka. Pogledajmo ih na primjeru stvaranja datoteke s podacima o događajima.

1. Najprije trebate izraditi i ispuniti podatkovnu tablicu u Excelu u skladu sa strukturom podataka. Za to koristite stavku izbornika Umetak/Tablica.

2. Kreirajmo shemu XML datoteke. Da biste to učinili, u uređivač teksta unosimo sljedeće retke i spremite ih u datoteku.

XHTML

0 0 0 0 Svijetlo Kristovo uskrsnuće. Uskrs 0 0 -7 0 -7 Ulazak Gospodnji u Jeruzalem 1

0

0

0

0

Svijetlo Kristovo uskrsnuće. Uskrs

0

0

-7

0

-7

Ulazak Gospodnji u Jeruzalem

1

3. Sada otvorite karticu Razvojni programer, pritisni gumb Izvor i navedite XML izvornu datoteku. Ako je potrebno, omogućite stavku izbornika Razvojni programer u postavkama programa Excel.

4. Ostaje još usporediti elemente dijagrama i stupce tablice povlačenjem elemenata do odgovarajućih naslova stupaca.

5. I posljednji korak: izvezite podatke tablice u XML datoteku pomoću kontekstnog izbornika. Stanite na bilo koju ćeliju tablice, kliknite desnom tipkom miša, odaberite XML/Izvoz… i spremite XML datoteku sa željenim nazivom.

Spremite Excel datoteku za kasnije uređivanje i dodavanje. Naknadno, stavci 1.-4. neće biti potrebe za ovim!

p.s. Zašto sam napisao ovu banalnu bilješku? Prvo, da se ne zaboravi, a drugo, mislim da će ove informacije biti korisne korisnicima, počevši od sljedeće verzije 0.6 ;-)

XML je univerzalni format za rad s podacima. Podržavaju ga mnogi programi, uključujući i one iz područja DBMS-a. Stoga je pretvaranje informacija u XML važno upravo sa stajališta interakcije i razmjene podataka između različitih aplikacija. Excel je samo jedan od programa koji rade s tablicama, a mogu čak i raditi s bazama podataka. Hajde da shvatimo kako pretvoriti Excel datoteke u XML.

Pretvaranje podataka u XML format nije tako jednostavan proces, budući da se tijekom njega mora stvoriti posebna shema (schema.xml). Međutim, za pretvaranje informacija u najjednostavnija datoteka ovog formata Dovoljno je imati pri ruci uobičajene alate za spremanje u Excelu, ali za stvaranje dobro strukturiranog elementa morat ćete puno petljati s crtanjem dijagrama i njegovim povezivanjem s dokumentom.

Metoda 1: Jednostavno spremanje

U Excelu možete spremiti podatke u XML formatu jednostavnim korištenjem izbornika "Spremi kao…". Istina, nema jamstva da će svi programi tada ispravno raditi s datotekom koja je stvorena na ovaj način. I ova metoda ne radi u svim slučajevima.


Time će biti dovršena konverzija datoteke iz Excela u XML format.

Metoda 2: Alati za razvojne programere

Excel format možete pretvoriti u XML pomoću alata za razvojne programere na kartici programa. Štoviše, ako korisnik sve učini ispravno, tada će na izlazu dobiti, za razliku od prethodna metoda, potpuna XML datoteka koja će se ispravno interpretirati aplikacije trećih strana. Ali mora se odmah reći da neće svaki početnik imati dovoljno znanja i vještina da odmah nauči kako pretvoriti podatke na ovaj način.

  1. Prema zadanim postavkama, kartica Alati za razvojne programere je onemogućena. Stoga ga prije svega morate aktivirati. Idi na karticu "Datoteka" i kliknite na stavku "Opcije".
  2. U prozoru s parametrima koji se otvori prijeđite na pododjeljak "Prilagodite vrpcu". Na desnoj strani prozora označite okvir pored vrijednosti "Programer". Nakon toga kliknite na gumb "U REDU" koji se nalazi na dnu prozora. Kartica alata za razvojne programere sada je omogućena.
  3. Dalje otvaramo Excel proračunska tablica u programu na bilo koji prikladan način.
  4. Na temelju njega moramo izraditi dijagram koji se može generirati u bilo kojem uređivaču teksta. U ove svrhe možete koristiti redovite Windows Notepad, ali bolje je koristiti specijaliziranu aplikaciju za programiranje i rad s označnim jezicima Notepad++. Pokrenimo ovaj program. U njemu stvaramo dijagram. U našem će primjeru izgledati kao što je prikazano u nastavku na snimci zaslona Notepad++ prozora.

    Kao što vidite, početna i završna oznaka za dokument u cjelini je "skup podataka". Oznaka igra istu ulogu za svaki redak "snimiti". Za shemu će biti dovoljno da uzmemo samo dva retka tablice, a ne da sve ručno prevodimo u XML. Naziv početne i završne oznake stupca može biti proizvoljan, ali u ovom slučaju, radi praktičnosti, radije smo jednostavno preveli nazive stupaca na ruskom jeziku u Engleski jezik. Nakon unosa podataka jednostavno ih spremamo kroz funkcionalnost uređivač teksta bilo gdje na vašem tvrdom disku u XML formatu tzv "shema".

  5. Idemo opet na Excel program pošto već otvoreni stol. Prelazak na karticu "Programer". Na vrpci u kutiji s alatom "XML" kliknite na gumb "Izvor". U polju koje se otvori s lijeve strane prozora kliknite na gumb "XML karte...".
  6. U prozoru koji se otvori kliknite na gumb "Dodati…".
  7. Otvara se prozor za odabir izvora. Idite u direktorij u kojem je dijagram ranije sastavljen, odaberite ga i kliknite na gumb "Otvoren".
  8. Nakon što se elementi dijagrama pojave u prozoru, povucite ih kursorom u odgovarajuće ćelije naziva stupaca tablice.
  9. Kliknite desnom tipkom miša na dobivenu tablicu. U kontekstni izbornik ići korak po korak korak po korak "XML" I "Izvoz…". Nakon toga spremite datoteku u bilo koji direktorij.

Kao što vidite, postoje dvije glavne metode pretvorbe XLS datoteke i program za format XLSX u XML Microsoft Excel. Prvi od njih je iznimno jednostavan i sastoji se od elementarne procedure spremanja sa zadanim proširenjem kroz funkciju "Spremi kao…". Jednostavnost i jasnoća ove opcije nedvojbeno su prednosti. Ali ima jedan vrlo ozbiljan nedostatak. Pretvorba se provodi bez uzimanja u obzir određenih standarda, pa stoga aplikacije trećih strana možda jednostavno neće prepoznati datoteku pretvorenu na ovaj način. Druga opcija uključuje izradu XML karte. Za razliku od prve metode, tablica pretvorena pomoću ove sheme zadovoljit će sve standarde kvalitete XML-a. Ali, nažalost, neće svaki korisnik moći brzo razumjeti nijanse ovog postupka.

Pogledajmo proceduru za pretvaranje objekta baze podataka u XML format:

  1. U prozoru baze podataka lijevom tipkom miša odaberite traženi objekt i odaberite naredbu Datoteka, izvoz(Datoteka, Eksport) ili desnom tipkom miša kliknite objekt i odaberite naredbu iz kontekstnog izbornika Izvoz(Izvoz).
  2. Pojavit će se dijaloški okvir Izvoz objekta(Izvoz u). Na padajućem popisu Vrste(Spremi kao vrstu) odaberite element XML dokumenti(XML dokumenti). U polju Naziv datoteke(Naziv datoteke) unesite naziv HTML dokument i pritisnite tipku Izvoz(Izvoz).
  3. Pojavit će se dijaloški okvir XML izvoz(Izvoz XML-a) (Sl. 12.9).
  4. Ovaj dijaloški okvir sadrži tri potvrdna okvira za tri komponente XML dokumenta: podatke, shemu podataka i prezentaciju podataka. (Za više informacija pogledajte odjeljak "XML format u Microsoft Office 2002" u ovom poglavlju). Odaberite potvrdne okvire za dijelove XML dokumenta koje želite izvesti. Na primjer, ako označite potvrdne okvire istovremeno podaci (XML)(Podaci (XML)) i shema podataka(Shema podataka), shema podataka će se izvesti i spremiti odvojeno od XML podatkovne datoteke, u XSD datoteci. Za tablice možete izvesti samo podatke ili njihovu strukturu ili podatke i strukturu zajedno, a ne izvesti prikaz tablice kao web-stranicu: potvrdni okvir prezentacija podataka(XSL) (Prezentacija vaših podataka (XSL)) može se ukloniti.

Riža. 12.9. Dijaloški prozor XML izvoz

Komentar

Potvrdni okvir Podaci (XML) trebao bi biti poništen samo ako želite izvesti samo novi prikaz objekta baze podataka, a podaci su prethodno bili izvezeni u XML datoteku. U suprotnom, kada otvorite rezultirajuću web stranicu, dobit ćete poruku o pogrešci povezivanja s izvorom podataka, a sama stranica će biti gotovo prazna.

  1. instalirati Dodatne mogućnosti konverzija, kliknite gumb Dodatno(Napredno) (Sl. 12.10).

Riža. 12.10. tab Podaci dijaloški okvir XML izvoz

  1. Osim toga, ovaj dijaloški okvir sadrži još dvije kartice za dvije preostale komponente XML dokumenta: podatkovnu shemu i prikaz podataka. Na svakoj od ovih kartica možete odabrati potvrdni okvir koji vam omogućuje izvoz odgovarajućeg dijela XML dokumenta, odrediti putanju i naziv datoteke u koju će taj dio dokumenta biti spremljen te postaviti neke dodatne parametre:
    • na kartici Podaci(Podaci) pomoću padajućeg popisa Kodiranje(Kodiranje) možete odabrati kodiranje za spremanje sadržaja stranice;
    • na kartici Shema(Shema) pomoću radio gumba možete odabrati želite li izvesti strukturu podataka zasebna datoteka XSD ili ga ugradite u XML datoteku zajedno s podacima;

Riža. 12.11. Izvješće o računu otvoreno u bazi podataka

  • na kartici Prezentacija(Prezentacija) pomoću prekidača možete odabrati format prezentacije web stranice: HTML obrađen na strani klijenta ili strani ASP poslužitelja. Ako izvezeni objekt sadrži slike koje želite uključiti u rezultirajući dokument, možete navesti naziv mape u kojoj se one nalaze. Na istoj kartici nalazi se polje za unos naziva XSL datoteke s opisom dizajna stranice. Ako navedena datoteka ne postoji, Access 2002 će stvoriti XSL datoteku koja opisuje vanjski prikaz dokumenta (programer to kasnije može koristiti kao osnovu za razvoj XSLT datoteke za pretvaranje XML dokumenta u drugi format).

Ako je potrebno dodatne informacije o predstavljanju podataka u XML formatu kliknite gumb Referenca(Pomozite). Informacije o razvijanju i pretvaranju XML dokumenata mogu se pronaći na web stranici Microsoft Developer: http://msdn.microsoft.com/.

Riža. 12.12. Otvorilo se izvješće "Faktura" čiji su podaci pretvoreni u XML format Internet Explorer

  1. Pritisnite OK.
  2. Ako predloženi parametri transformacije nisu promijenjeni, kao rezultat će se stvoriti tri datoteke: XML - s podacima, XSL - sa stilovima i HTM - s prikazom pretvorenog objekta. Da biste otvorili rezultirajuću web stranicu, trebate otvoriti HTM ili ASP datoteku u Internet Exploreru, ovisno o tome koji ste format prezentacije odabrali.

Nažalost, podobrasci i izvješća te pridružene grafike neće biti dodani u XML dokument dobiven iz objekta baze podataka. Međutim, jednostavni objekti s ugrađenom grafikom izvezenom u XML izgledat će gotovo potpuno isto kao izvorni u Accessu. To možete provjeriti usporedbom, na primjer, izvornika i izvješća o fakturi pretvorenog u XML format iz baze podataka Northwind (slike 12.11 i 12.12).

Ako postoji mnogo podataka u izvoru podataka odabranog objekta, učitavanje web stranice u internetski preglednik može potrajati dosta vremena.

Komentar

Budući da su sami podaci sadržani u takvom web dokumentu u potpunosti pohranjeni u XML datoteci, nema potrebe za pristupom bazi podataka iz koje su podaci izvorno preuzeti (kao što je npr. slučaj kod pretvaranja izvješća u XML format) To znači da je za pristup takvom dokumentu dovoljno postaviti samo navedeni skup datoteka s opisom tog dokumenta na web poslužitelju, s druge strane, to znači promjenu podataka u takvom dokumentu moguće je samo korištenjem aplikacija koje imaju pristup XML datoteci i mogu ga percipirati.

Prilikom razvoja sustava za elektroničko upravljanje dokumentima bilo je potrebno implementirati funkcije za izvoz podataka u popularne formate. Konkretno, u Microsoft Excel formatu. Zahtjevi za izvoz bili su prilično jednostavni - izvoz podataka s minimalnim formatiranjem, tj. nema spojenih ćelija, igranja s fontovima itd. Izvoz formata XLSX i Excel XML.

U ovom slučaju, reći ću vam o Excel XML-u.

Dakle, u svakom sustavu koji radi na tabličnim podacima, prije ili kasnije pojavi se potreba za eksportom podataka. Svrhe izvoza su različite:

Implementacija skupa funkcija u klasi za bilježenje vrijednosti ćelija i redaka glavni je zahtjev koji uključuje stvaranje funkcija za bilježenje vrijednosti ćelija navedene vrste i mogućnost zapisivanja gotove serije u datoteku.

Sposobnost rada s neograničenom količinom podataka - naravno, sama izvozna klasa ne može biti odgovorna za volumen koji se upisuje, ali bi trebala osigurati funkcije za pisanje podataka na disk i njihovo otpuštanje RAM memorija za sljedeći podatak.

Uz opisane zahtjeve bilo je potrebno dodati servisne funkcije:

  • Omogućavanje automatskog filtra
  • Komprimirajte datoteku u zip.

Provedba

Prije svega, kada kreiram klasu, provjeravam konačni naziv datoteke i tražim broj stupaca i redaka. Datoteka mora imati valjani naziv, a mapa u koju će biti spremljena mora postojati. Sve je kao i obično.
Excel XML format omogućuje spremanje podataka o korisniku koji ga je stvorio u datoteci, stoga, prilikom izrade zaglavlja, zapisujem naziv organizacije, podatke o korisniku i datum stvaranja datoteke.

Javna funkcija writeDocumentProperties($organization = null, $user = null) ( fwrite($this->file, " "); if (!is_null($user)) ( fwrite($this->file, " ".$korisnik->opis.""); fwrite($this->file, " ".$korisnik->opis.""); ) $dt = new Datetime(); $dt_string = $dt->format("Y-m-d\TH:i:s\Z"); fwrite($this->file, " ".$dt_string.""); fwrite($this->file, " ".$dt_string.""); if (!is_null($organization)) fwrite($this->file, " ".$organizacija->naziv.""); fwrite($this->file, " 12.00"); fwrite($this->file, ""); }
Istina, upravo se u ovoj funkciji koriste entiteti sustava za upravljanje dokumentima - organizacija (organizacija) i korisnik (korisnik). Zamjena tih entiteta s, recimo, vrijednostima nizova nije problem.

Najzanimljiviji dio zaglavlja su informacije o stilu. Implementirani su vrlo praktično u Excel XML formatu, tako da jednostavno kreiram tablicu sa stilovima za nizove, datum/vrijeme i hiperveze.

Javna funkcija writeStyles() ( fwrite($this->file, ""); //default style fwrite($this->file, ""); //Stil datuma i vremena fwrite($this->file, ""); fwrite($this->file, ""); fwrite($this->file, ""); //Stil hiperveze fwrite($this->file, ""); //Podebljano fwrite($this->file, ""); fwrite($this->file, ""); }

Nakon dovršetka pripremnih radova, možete nastaviti sa snimanjem podataka. Otvaranje radnog lista je samo nekoliko oznaka; u ovom trenutku se koristi informacija o broju stupaca i redaka.

Javna funkcija openWorksheet() ( fwrite($this->file, " "); fwrite($this->file, strtr("

", array("(col_count)"=>$this->colCount, "(row_count)"=>$this->rowCount))); )
Ali snimanje redaka je zanimljiviji proces. Klasa mora raditi brzo i obraditi neograničenu količinu podataka, jer zapisa može biti sto tisuća pa čak i milijun! Ako želite brzinu, radite s memorijom; ako želite neograničene podatke, radite s diskom. Kako bih uskladio zahtjeve, implementirao sam funkcije resetRow i flushRow.
Prvi briše trenutni red, nakon čega se može ponovno popuniti podacima, a drugi zapisuje trenutni red u otvorenu datoteku na disku. Njihova zajednička uporaba omogućuje vam održavanje ravnoteže između brzine i količine korištene memorije.

Javna funkcija resetRow() ( $this->currentRow = array(); ) javna funkcija flushRow() ( fwrite($this->file, implode("", $this->currentRow)); unset($this-> trenutni red);
Svaka ćelija je zapisana s funkcijom koja odgovara tipu podataka, naime appendCellxxx, gdje je xxx tip podataka. Važeći tipovi podataka: Num, String, Real, DateTime, Date, Time, Link. Primjer funkcije za pisanje numeričke vrijednosti:

Javna funkcija appendCellNum($value) ( ​​​​$this->currentRow = " ".$vrijednost.""; }
Nakon snimanja svih podataka preostaje samo zatvoriti radni list i radnu bilježnicu.

Primjena

Korištenje opisane klase temelji se na izvozu podataka pomoću CArrayDataProvider providera. Međutim, pod pretpostavkom da količina izvezenih podataka može biti vrlo velika, koristi se poseban iterator CDataProviderIterator, koji iterira kroz vraćene podatke za 100 zapisa (možete odrediti različiti broj zapisa).

Javna funkcija exportExcelXML($organization, $user, &$filename) ( $this->_provider = new CArrayDataProvider(/*query*/); Yii::import("ext.AlxdExportExcelXML.AlxdExportExcelXML"); $export = new AlxdExportExcelXML ($filename, count($this->_attributes), $this->_provider->getTotalItemCount() + 1); $export->openWorkbook(); organizacija, $user export->writeStyles(); $export->openWorksheet(); //title row $export->openRow(true); $export->appendCellString(); $this->_objectref($code)); $export->flushRow(); = novi CDataProviderIterator($this->_provider, 100); ) ( $export->resetRow(); $export->openRow(); foreach ($this->_attributes as $code => $format) ( switch ($format->type) ( case "Num": $export ->appendCellNum($row[$code]); /*ostali tipovi*/ zadano: $export->appendCellString(""); ) ) $export->closeRow(); $export->flushRow(); ) //zatvori sve $export->closeWorksheet(); $export->closeWorkbook(); $export->closeWriter(); //zip datoteka $export->zip(); $filename = $export->getZipFullFileName(); )
U mom slučaju, svaki redak je zapisan na disk, što je za sada sasvim prihvatljivo, ali bi moglo zahtijevati promjene u budućnosti. Na primjer, bilo bi pametno spremati ne svaki red, već svakih deset ili čak sto redaka odjednom. Tada će se povećati brzina izvoza.

Ubrzati

Usput, iz vlastitog sam iskustva naučio koliko je važno pretpostaviti mogućnost postojanja velikih količina podataka tijekom skupne operacije kao što je izvoz.
U početku sam pokušao izvesti podatke koristeći CActiveDataProvider, što je zahtijevalo oko 240 sekundi pri izvozu 1000 zapisa! Promjena upita za korištenje CArrayDataProvidera smanjila je vrijeme za izvoz 1000 zapisa na 0,5 sekundi!
Posebno za ovu publikaciju mjerio sam izvozne pokazatelje.
Izvezeno 1626 zapisi iz 9 atributi koji predstavljaju informacije o zatvorenim incidentima (vidi ITSM).
Početni pogled na izvezenu tablicu
Proizlaziti
(žao nam je, slika nestaje nakon objave)
Brojke izvoza
Konačna veličina datoteke: 1 312 269
Veličina komprimirane datoteke: 141 762
Potrebno vrijeme: cca. 0.5 sek

Svi zainteresirani mogu ga dobiti izvor moj razred besplatno. Samo ne zaboravite ispraviti funkciju writeDocumentProperties za prekid veze s entitetima sustava upravljanja dokumentima organizacije i korisnika ili upotrijebite vlastite slične entitete s odgovarajućim svojstvima.

reći ću ti brz način stvaranje xml datoteke iz excel tablice!

XML dokumenti su vrlo jaka i moćna stvar. S jednom XML datotekom možete ispuniti svoje web mjesto informacijama u nekoliko sekundi! Uostalom, svi moderni motori (CMS) imaju mogućnost uvoza iz XML datoteke. Pa o čemu ja pričam?

Kao što znate, *.xls formati (*.xlsx u uredu 2007) su formati Microsoft Office Excel. Ured iz 2003. je prošlost, postoji već 2010., ali ja radim na 2007., pa ću govoriti na temelju njega. Idemo!

1. Idite na Microsoftovo web mjesto i preuzmite dodatak za rad s XML-om. Preuzmite dodatak za Excel 2003: dodatak za XML alate. Ne teži puno, 397 KB.



2. Instalirajte ga na svoje računalo. Ne postoji ništa teško instalirati. Prema zadanim postavkama, dodatak je instaliran ovdje: c:\Office Samples\OfficeExcel2003XMLToolsAddin

3. Sada otvorite Excel, idite na izbornik i odaberite “Excel Options”.

4. U prozoru koji se pojavi s lijeve strane odaberite stavku "Dodaci", a na dnu prozora kliknite gumb "Idi...".

5. Pred Vama će se otvoriti novi prozor u kojem trebate kliknuti gumb “Pregledaj...”. Kako to izgleda prikazano je u nastavku.

6. Sada trebate pronaći instalirani XmlTools dodatak (pogledajte). Odaberite ga i kliknite OK!

7. Ako ste sve napravili kako treba, vidjet ćete sljedeći prozor! Slobodno kliknite OK, instalacija je završena!

8. Sada imate karticu s dodacima u gornjem izborniku i stavku XML alati s lijeve strane.

Razvrstali smo instalaciju, a sada prijeđimo izravno na pretvaranje (izvoz) xls u xml.

1. Da biste to učinili, otvorite datoteku s podacima koje je potrebno destilirati. Zatim odaberite prvu stavku u padajućem izborniku "Pretvori raspon u XML popis..."

2. Pred tobom će se otvoriti prozorčić, što ti treba u njemu? Postoje radio gumbi, Ne i Da, čemu oni služe? Jednostavno je, ako imate zaglavlje za podatke (kod mene postoji), odaberite Da, a ako ga nemate, Ne. Zatim kliknite na mali pravokutnik u gornjem retku.

3. Odaberite područje podataka koje pretvaramo i kliknite na gumb s desne strane u prozoru koji se pojavi. Vraća se prethodni prozor i kliknite OK.

4. Vaš znak bi se trebao promijeniti, moglo bi se reći transformirati, za mene to izgleda ovako:

6. Na padajućem popisu "Vrsta datoteke" odaberite XML podaci i kliknite "Spremi".

Čestitamo, vaša je datoteka stvorena!

Nadam se da je sve prikazano detaljno i jasno, ali ako imate pitanja, pišite!



reci prijateljima
Pročitajte također