Document de la excel la xml. Creați și editați un fișier XML în Excel

Acasă / Instalarea programelor

La dezvoltarea unui sistem electronic de gestionare a documentelor, a fost necesar să se implementeze funcții de export de date în formate populare. În special, în format Microsoft Excel. Cerințele pentru export au fost destul de simple - exportați datele cu un minim de formatare, adică. fără celule îmbinate, joc cu fonturi etc. Exportați formatele XLSX și Excel XML.

În acest caz, vă voi spune despre Excel XML.

Deci, în orice sistem care funcționează pe date tabulare, mai devreme sau mai târziu apare nevoia de a exporta date. Scopurile de export sunt diferite:

Implementarea într-o clasă a unui set de funcții pentru înregistrarea valorilor celulelor și a unei serii este principala cerință, ceea ce implică crearea de funcții pentru înregistrarea valorilor celulelor de tipuri specificate și capacitatea de a scrie seria finită în un dosar.

Capacitatea de a lucra cu o cantitate nelimitată de date - desigur, clasa de export în sine nu poate fi responsabilă pentru volumul care este scris, dar ar trebui să ofere funcții pentru scrierea datelor pe disc și eliberarea RAM pentru următoarea porțiune de date.

Pe lângă cerințele descrise, a fost necesar să se adauge funcții de serviciu:

  • Activarea filtrului automat
  • Comprimați fișierul în zip.

Implementarea

În primul rând, când creez o clasă, verific numele final al fișierului și cer numărul de coloane și rânduri. Fișierul trebuie să aibă un nume valid, iar folderul în care va fi salvat trebuie să existe. Totul este ca de obicei.
Formatul Excel XML vă permite să salvați în fișier informații despre utilizatorul care l-a creat, prin urmare, la crearea unui antet, notez numele organizației, informații despre utilizator și data la care a fost creat fișierul.

Funcția publică writeDocumentProperties($organization = null, $user = null) ( fwrite($this->file, " "); dacă (! is_null($user)) ( fwrite($this->fișier, " „.$user->descriere”."); fwrite($this->fișier, " „.$user->descriere”."); ) $dt = new Datetime(); $dt_string = $dt->format("Y-m-d\TH:i:s\Z"); fwrite($this->fișier, " ".$dt_string.""); fwrite($this->fișier, " ".$dt_string.""); dacă (!is_null($organizație)) fwrite($this->fișier, " „.$organizație->nume”."); fwrite($this->fișier, " 12.00"); fwrite($this->fișier, ""); }
Adevărat, în această funcție sunt utilizate entitățile sistemului de management al documentelor - organizație (organizație) și utilizator (utilizator). Înlocuirea acestor entități cu, să zicem, valori de șir nu este o problemă.

Cea mai interesantă parte a antetului este informația de stil. Sunt implementate foarte convenabil în format Excel XML, așa că pur și simplu creez un tabel cu stiluri pentru șiruri, dată/oră și hyperlinkuri.

Funcția publică writeStyles() ( fwrite($this->fișier, ""); //default style fwrite($this->file, ""); //Stilul Datetime fwrite($this->fișier, ""); fwrite($this->fișier, ""); fwrite($this->fișier, ""); //Stil hiperlink fwrite($this->fișier, ""); //Bold fwrite($acest->fișier, ""); fwrite($this->fișier, ""); }

După finalizarea lucrărilor pregătitoare, puteți trece la înregistrarea datelor. Deschiderea unei foi de lucru este doar câteva etichete, doar în acest moment sunt folosite informații despre numărul de coloane și rânduri.

Funcția publică openWorksheet() ( fwrite($this->file, " "); fwrite($this->fișier, strtr("

", array ("(col_count)"=>$this->colCount, "(row_count)"=>$this->rowCount))); )
Dar înregistrarea rândurilor este un proces mai interesant. Clasa trebuie să funcționeze rapid și să proceseze o cantitate nelimitată de date, deoarece pot exista o sută de mii sau chiar un milion de înregistrări! Dacă vrei viteză, lucrează cu memorie dacă vrei date nelimitate, lucrează cu disc. Pentru a reconcilia cerințele, am implementat funcțiile resetRow și flushRow.
Primul șterge rândul curent, după care poate fi umplut din nou cu date, iar al doilea scrie rândul curent într-un fișier deschis de pe disc. Folosirea lor împreună vă permite să mențineți un echilibru între viteza și cantitatea de memorie utilizată.

Funcția publică resetRow() ( $this->currentRow = array(); ) funcție publică flushRow() ( fwrite($this->file, implode("", $this->currentRow)); unset($this-> currentRow);
Fiecare celulă este scrisă cu o funcție corespunzătoare tipului de date, și anume appendCellxxx, unde xxx este tipul de date. Tipuri de date valide: Num, String, Real, DateTime, Date, Time, Link. Exemplu de funcție pentru scrierea unei valori numerice:

Funcția publică appendCellNum($value) ( ​​​​$this->currentRow = " „.$valoare”."; }
După înregistrarea tuturor datelor, tot ce rămâne este să închideți foaia de lucru și registrul de lucru.

Aplicație

Utilizarea clasei descrise se bazează pe exportul de date folosind furnizorul CArrayDataProvider. Totuși, presupunând că volumul de date exportate poate fi foarte mare, se folosește un iterator special CDataProviderIterator, care iterează prin datele returnate cu 100 de înregistrări (puteți specifica un număr diferit de înregistrări).

Funcția publică exportExcelXML($organizație, $utilizator, &$nume fișier) ( $this->_provider = new CArrayDataProvider(/*query*/); Yii::import("ext.AlxdExportExcelXML.AlxdExportExcelXML"); $export = nou AlxdExportExcelXML ($filename, count($this->_attributes), $this->_provider->getTotalItemCount() + 1 $export->openWorkbook(); export->writeStyles(); $export->openWorksheet(); //titlu $export->openRow(); $this->_objectref->getAttributeLabel($code)); $export->flushRow(); ) ( $export->resetRow(); $export->openRow(); foreach ($this->_attributes ca $code => $format) ( switch ($format->type) (case „Număr”: $export ->appendCellNum($row[$code]); /*alte tipuri*/ implicit: $export->appendCellString("");
) ) $export->closeRow();

$export->flushRow();

) //închide tot $export->closeWorksheet();
$export->closeWorkbook();
$export->closeWriter();
//fișier zip $export->zip(); 1626 $filename = $export->getZipFullFileName(); ) 9 În cazul meu, fiecare rând este scris pe disc, ceea ce este destul de acceptabil pentru moment, dar poate necesita modificări în viitor. De exemplu, ar fi înțelept să salvați nu fiecare rând, ci la fiecare zece sau chiar o sută de rânduri odată. Apoi viteza de export va crește.
Viteză
Apropo, am învățat din propria experiență cât de important este să ne asumăm posibilitatea existenței unor volume mari de date în timpul unei operațiuni batch precum exportul.
Inițial, am încercat să export datele folosind CActiveDataProvider, ceea ce a necesitat aproximativ 240 de secunde la exportul a 1000 de înregistrări! Modificarea interogării pentru a utiliza CArrayDataProvider a redus timpul de export a 1000 de înregistrări la 0,5 secunde!
Am măsurat indicatorii de export în special pentru această publicație.
Exportat 1 312 269
înregistrări de la 141 762
atribute reprezentând informații despre incidente închise (vezi ITSM). 0.5 Vedere inițială a tabelului exportat

Rezultat (scuze, poza dispare dupa publicare) pentru a vă deconecta de la organizația și utilizatorul entităților sistemului de management al documentelor sau utilizați propriile entități similare cu proprietățile corespunzătoare.

După importarea datelor XML, maparea datelor în celulele foii de lucru și efectuarea modificărilor datelor, deseori trebuie să exportați sau să salvați datele ca fișier XML.

Important:

Exportați date XML (max. 65.536 de linii)

Exportați date XML (mai mult de 65.536 de rânduri)

    Găsiți diferența dintre numărul total de linii din fișier și numărul 65.537 Să notăm acest număr cu x.

    Ștergeți x rânduri de la începutul unei foi Excel.

    Exportați foaia într-un fișier de date XML (secțiunea anterioară descrie procedura).

    Faceți clic pe butonul Aproape, Dar nu salva foaie. Apoi deschideți din nou foaia Excel.

    Eliminați toate datele după întregul x și apoi exportați-le ca fișier de date XML (consultați secțiunea anterioară a procedurii).

    Acest lucru vă va împiedica să pierdeți restul datelor. În acest moment, aveți două fișiere de export XML care pot fi combinate pentru a crea un duplicat al foii originale.

Salvarea datelor XML în celule mapate într-un fișier de date XML

Dacă trebuie să mențineți compatibilitatea cu versiunile anterioare ale funcționalității XML, puteți salva fișierul ca fișier de date XML în loc să utilizați comanda Export.

Nota: Dacă foaia de lucru conține titluri sau etichete care diferă de numele elementelor XML din harta XML, Excel utilizează numele elementelor XML atunci când exportați sau salvați datele XML.

Probleme frecvente la exportul de date XML

La exportul datelor XML pot apărea mesaje similare cu următoarele.

Această hartă XML poate fi exportată, dar unele elemente obligatorii nu sunt mapate

Acest mesaj poate apărea din următoarele motive.

    Harta XML asociată cu acest tabel XML are unul sau mai multe elemente necesare care nu sunt mapate la acesta.

    Lista ierarhică de elemente din panoul de activități XML Source indică prezența elementelor necesare prin plasarea unei stea roșii în colțul din dreapta sus al pictogramei din stânga fiecărui element. Pentru a mapa elementul dorit, trageți-l pe foaia unde doriți să apară.

    Elementul reprezintă o structură recursivă.

    Un exemplu tipic de structură recursivă este o ierarhie de angajați și manageri, în care aceleași elemente XML sunt imbricate la mai multe niveluri. Deși puteți potrivi toate elementele din panoul de activități Sursă XML, Excel nu acceptă structuri recursive care au mai mult de un nivel, așa că nu poate potrivi toate elementele.

    Tabelul XML conține conținut mixt.

    Conținut mixt apare atunci când un element conține un element copil și text simplu în afara elementului copil. Acesta este adesea cazul când etichetele de formatare (cum ar fi etichetele aldine) sunt folosite pentru a marca datele dintr-un element. Elementul copil poate fi afișat (dacă este acceptat în Excel), dar conținutul textului se pierde atunci când datele sunt importate și nu este disponibil când sunt exportate, ceea ce înseamnă că nu este utilizat nici în operația înainte, nici în operația inversă.

Nu se pot exporta hărți XML într-un registru de lucru

Harta XML nu va putea exporta dacă relațiile elementului mapat cu alte elemente nu pot fi păstrate. Este posibil ca relația să nu supraviețuiască din următoarele motive.

    Definiția schemei elementului mapat este conținută într-o secvență cu următoarele atribute:

    • atribut maxapare nu este egal cu 1;

      secvența conține mai mult de un element copil direct sau include un alt obiect compus ca atare element.

    Elementele frate care nu se repetă cu același element părinte care se repetă sunt mapate la tabele XML diferite.

    Mai multe elemente duplicat sunt mapate la același tabel XML, iar repetiția nu este definită de un strămoș.

    Copiii ale diferitelor elemente părinte sunt mapați la același tabel XML.

În plus, nu puteți exporta o hartă XML dacă conține una dintre următoarele construcții de schemă XML.

    Lista listelor. O listă de elemente conține o altă listă de elemente.

    Date nenormalizate. Tabelul XML conține un element care, conform definiției din schemă, trebuie să apară o singură dată (atributul maxapare a atribuit valoarea 1). Când adăugați un astfel de element la un tabel XML, Excel va popula coloana tabelului cu mai multe instanțe ale acestuia.

    Alegere. Elementul potrivit face parte din construcția circuitului .

Reprezentarea datelor pe baza introducerii unei descrieri cu etichete sau setări de program. Nu le puteți deschide pentru editare cu un dublu clic obișnuit. Acest lucru se datorează faptului că aplicația necesară, care este utilizată implicit, nu este instalată pentru a se asocia cu extensia. Dar dacă doriți un fișier tabel care poate fi citit și editabil, puteți deschide fișierul XML în Excel. În acest caz, nu sunt necesare convertoare care pot converti formatele între ele. Singura avertizare este că această caracteristică este disponibilă numai în versiunile Office 2003 și mai recente.

Cum se deschide XML în Excel: metoda unu

Să ne uităm la importarea datelor bazate pe Excel versiunea 2016. Prima și cea mai simplă modalitate este să lansați inițial Excel. Când porniți aplicația, în loc de salut și logo, va afișa o fereastră specială de conectare, în care există o linie „Deschide alte cărți” în meniul din stânga.

După aceasta, elementul de răsfoire este utilizat, iar în noua fereastră XML este selectat ca format de deschidere. După aceasta, folosind metoda obișnuită, găsim fișierul dorit și apăsăm butonul de deschidere. În acest caz, este recunoscut nu ca un document text care conține descrieri și etichete, ci ca un tabel foarte obișnuit. Desigur, datele pot fi editate la discreția dvs., dar mai multe despre asta mai târziu.

Cum se deschide formatul XML în Excel: metoda a doua

O altă metodă propusă nu este practic diferită de prima. Puteți deschide un fișier XML în Excel din meniul de fișiere sau puteți utiliza comanda rapidă Ctrl + O pentru a face acest lucru.

Din nou, se selectează mai întâi tipul de format care urmează să fie deschis, după care se găsește fișierul dorit și se apasă butonul corespunzător.

Deschiderea XML: Metoda trei

Există mai multe metode XML în Excel. Deci, în versiunea 2016 a programului, puteți utiliza meniul panoului de sus, unde selectați secțiunea „Date”, apoi faceți clic pe butonul pentru a obține date externe.

În meniul derulant, trebuie doar să selectați secțiunea „Din alte surse” și să utilizați linia „De la import XML” în noul meniu. Aceasta este urmată de procedura standard de căutare a fișierului dorit și apoi deschiderea acestuia.

Editare, salvare și export

Când folosește oricare dintre aceste metode, utilizatorul primește structura tabelului. Editarea se face în același mod ca și în cazul fișierelor XLS standard. Uneori, pentru a ușura editarea și salvarea datelor, este recomandabil să folosiți meniul pentru dezvoltatori.

În acest caz, puteți importa nu tot conținutul fișierului XML, ci doar ceea ce este cu adevărat necesar, inserând informații în coloanele și rândurile corespunzătoare, specificând obiectul XML ca sursă de date. Dar pentru a face acest lucru, trebuie să vă conectați la contul dvs. în programul însuși folosind înregistrarea la Microsoft.

Puteți salva imediat fișierul modificat în formatul original selectând tipul corespunzător din listă. Din meniul de fișiere, dacă obiectul a fost salvat în formatul „nativ” Excel, puteți selecta funcția de export, faceți clic pe modificare tip fișier și setați XML ca format final.

Dacă utilizatorului este prea leneș să facă astfel de conversii sau folosește o versiune de Office mai mică decât versiunea 2003, va trebui să folosească un convertor special pentru a deschide acest format ca tabel. Acum sunt oferite destul de multe astfel de programe. În ultimă instanță, dacă acest lucru nu este potrivit, puteți apela cu ușurință la servicii online specializate, unde formatul va fi schimbat în câteva zeci de secunde. După parcurgerea acestor pași, tot ce rămâne este să descărcați rezultatul final în format XLS pe ​​hard disk, apoi să îl deschideți în Excel. Cu toate acestea, în majoritatea cazurilor, astfel de acțiuni nu sunt necesare, deoarece în Office 2003 capacitatea de a deschide (import) direct formatul XML este deja furnizată inițial. Și se pare că puțini oameni folosesc astăzi produse de birou Microsoft învechite.

Microsoft Excel este un instrument convenabil pentru organizarea și structurarea unei game largi de date. Vă permite să procesați informații folosind diferite metode și să editați seturi de date.

Să luăm în considerare posibilitățile de utilizare a acestuia pentru a genera și procesa fișiere de aplicații web. Folosind un exemplu specific, vom studia elementele de bază ale lucrului cu XML în Excel.

Cum se creează un fișier XML din Excel

XML este un standard de fișiere pentru transmiterea datelor pe Internet. Excel acceptă exportul și importul acestuia.

Să ne uităm la crearea unui fișier XML folosind exemplul unui calendar de producție.

  1. Să facem un tabel din care trebuie să creați un fișier XML în Excel și să îl completați cu date.
  2. Să creăm și să inserăm o hartă XML cu structura documentului necesară.
  3. Exportați datele din tabel în format XML.

Salvăm fișierul ca XML.

Alte modalități de a obține date XML (schemă):

  1. Descărcați dintr-o bază de date, aplicație de afaceri specializată. Schemele pot fi furnizate de site-uri și servicii comerciale. Opțiunile simple sunt disponibile publicului.
  2. Utilizați mostre gata făcute pentru a testa hărțile XML. Mostrele conțin elementele principale și structura XML. Copiați și inserați în Notepad și salvați cu extensia dorită.


Cum să salvați un fișier Excel în format XML

Una dintre variante:

  1. Faceți clic pe butonul Office. Selectați „Salvare ca” - „Alte formate”.
  2. Atribuim un nume. Selectați locația de salvare și tipul fișierului – XML.

Mai multe opțiuni:

  1. Descărcați convertorul XLC în XML. Sau găsiți un serviciu care vă permite să exportați fișierul online.
  2. Descărcați suplimentul XML Tools de pe site-ul oficial Microsoft. Este disponibil gratuit.
  3. Deschiderea unei noi cărți. Butonul Office – „Deschide”.

Cum se deschide un fișier XML în Excel

Faceți clic pe OK. Puteți lucra cu tabelul rezultat ca și cu orice fișier Excel.

Cum să convertiți fișierul XML în Excel

Edităm tabelul creat și îl salvăm în format Excel.

Cum să colectați date din fișiere XML în Excel

Principiul colectării informațiilor din mai multe fișiere XML este același cu principiul transformării. Când importăm date în Excel, harta XML este transferată în același timp. Alte date pot fi transferate în aceeași schemă.

Fiecare fișier nou va fi legat la o hartă existentă. Fiecare element din structura tabelului corespunde unui element din hartă. Este permisă o singură legare de date.

Pentru a configura opțiunile de conectare, deschideți instrumentul Proprietăți hărți din meniul Dezvoltator.


Posibilitati:

  1. Fiecare fișier nou va fi verificat de Excel pentru conformitatea cu cardul instalat (dacă bifăm caseta de lângă acest articol).
  2. Datele pot fi actualizate. Sau informații noi vor fi adăugate la tabelul existent (are sens dacă trebuie să colectați date din fișiere similare).

Toate acestea sunt modalități manuale de a importa și exporta fișiere.

Nota: Acest articol și-a îndeplinit scopul și va fi întrerupt în curând. Pentru a evita erorile „Pagină nu a fost găsită”, eliminăm linkurile despre care știm. Dacă ați creat linkuri către această pagină, vă rugăm să le eliminați și împreună putem menține coerența pe web.

Dacă trebuie să creați un fișier de date XML și un fișier de schemă XML dintr-o serie de celule dintr-o foaie de lucru, puteți utiliza versiunea 1.1 a programului de completare XML Tools for Excel 2003 pentru a extinde capabilitățile XML existente în Microsoft Excel 2007 și mai târziu. versiuni.

Nota: Acest program de completare a fost dezvoltat pentru Excel 2003. Documentația și interfața cu utilizatorul se referă la liste, care sunt numite tabele Excel în versiunile aplicației ulterioare Excel 2003.

Pentru mai multe informații despre lucrul cu acest program de completare, consultați Utilizarea programului de completare XML Tools versiunea 1.1 pentru Excel 2003.

Pasul 2: convertiți o serie de celule într-un tabel XML

    Introduceți datele pentru care doriți să creați un fișier de date XML și un fișier de schemă XML. Datele trebuie prezentate în format tabelar sub formă de coloane și rânduri (numite date obișnuite).

    Pe fila Suplimenteîn grup Comenzi din meniu faceți clic pe săgeata de lângă legendă Instrumente XMLși apăsați butonul Convertiți intervalul în listă XML.

    Introduceți intervalul de celule cu datele pe care doriți să le convertiți ca referință absolută în caseta de text.

    În câmp Prima linie conține numele coloanelor selecta Nu, dacă primul rând conține date sau Da dacă primul rând conține antete de coloană și faceți clic Bine.

    Excel va crea automat schema XML, va lega celulele la schemă și va crea tabelul XML.

    Important: Dacă se deschide Editorul Visual Basic și vedeți un mesaj de eroare Visual Basic pentru aplicații (VBA), urmați acești pași:

    1. Faceți clic pe butonul Bine.

      În linia evidențiată a modulului de cod VBA, eliminați „50” din linie. Cu alte cuvinte, schimbați:
      XMLDoc ca MSXML2 . DOMDocument50
      La care:
      XMLDoc ca Msxml2. Domdocument

      Apăsați F5 pentru a căuta următoarea linie care conține textul „XMLDoc As msxml2.DOMDocument50”, faceți clic pe Bineși schimbați linia ca în paragraful anterior.

      Apăsați din nou F5 pentru a găsi și modifica alte instanțe ale liniei.

      Dacă nu mai vedeți mesajul de eroare VBA după ce apăsați F5, închideți Visual Basic Editor pentru a reveni la registrul de lucru. Intervalul de celule va fi convertit într-un tabel XML.

      Nota: Pentru a afișa toate hărțile XML într-un registru de lucru, în filă Dezvoltatorîn grup XML faceți clic pe butonul Sursă pentru a afișa panoul de activități XML Source. În partea de jos a panoului de activități Sursă XML, faceți clic Hărți XML.

      Dacă tab Dezvoltator nu este vizibil, urmați primii trei pași din secțiunea următoare pentru a-l adăuga la panglica Excel.

Pasul 3: Exportați tabelul XML într-un fișier de date XML (XML).

Nota: Când creați hărți XML și exportați date în Excel în fișiere XML, există o limită a numărului de rânduri care pot fi exportate. Când exportați într-un fișier XML din Excel, puteți salva până la 65.536 de rânduri. Dacă fișierul conține mai mult de 65.536 de rânduri, Excel va putea exporta doar primele rânduri (număr de rânduri mod 65.537). De exemplu, dacă o foaie de lucru conține 70.000 de rânduri, Excel exportă 4.464 de rânduri (70.000 mod 65.537). Vă recomandăm să urmați unul dintre următoarele sfaturi: 1) utilizați formatul XLSX; 2) salvați fișierul în format „XML 2003 Table (*.xml)” (acest lucru va duce la pierderea mapărilor); 3) eliminați toate liniile după 65536 și apoi exportați din nou (acest lucru va păstra mapările, dar va pierde liniile la sfârșitul fișierului).

Pasul 4: Salvați schema XML într-un fișier XML Schema (XSD).

Nota: Această pagină a fost tradusă automat și poate conține inexactități și erori gramaticale. Pentru noi este important ca acest articol să vă fie util. Au fost utile informațiile? De asemenea, pentru comoditate (în engleză).

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații