LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Ti dirò un modo rapido per creare un file XML da una tabella di Excel!

I documenti XML sono una cosa molto potente e potente. Con un singolo file XML, puoi riempire un sito con informazioni in pochi secondi! In effetti, in tutti i motori moderni (CMS) esiste la possibilità di importare da un file hml. Allora perché sono io.

Come sai, i formati * .xls (* .xlsx in Office 2007) sono formati di Microsoft Office Excel. 2003 l'ufficio è un ricordo del passato, c'è già il 2010, ma lavoro per il 2007 e, quindi, lo dirò, basato su di esso. Andiamo!

1. Vai al sito Web Microsoft e scarica il componente aggiuntivo per lavorare con XML. Scarica il componente aggiuntivo Excel 2003: componente aggiuntivo strumenti XML. Non pesa molto, 397 KB.



2. Installalo sul tuo computer. Non c'è nulla di complicato nell'installazione. Per impostazione predefinita, il componente aggiuntivo è installato qui: c: \\ Office Samples \\ OfficeExcel2003XMLToolsAddin

3. Ora apri Excel, vai al menu e seleziona "Opzioni di Excel".

4. Nella finestra visualizzata, a sinistra, seleziona l'elemento "Componenti aggiuntivi" e, nella parte inferiore della finestra, fai clic sul pulsante "Vai a ..."

5. Una nuova finestra si aprirà davanti a te, in essa è necessario fare clic sul pulsante "Sfoglia ...". Come appare è mostrato di seguito.

6. Ora è necessario trovare il componente aggiuntivo XmlTools installato (vedere). Selezionalo e fai clic su OK!

7. Se hai fatto tutto correttamente, vedrai la seguente finestra! Sentiti libero di fare clic su OK, l'installazione è completa!

8. Hai la scheda del componente aggiuntivo nel menu in alto e l'elemento Strumenti XML sulla sinistra.

Abbiamo capito l'installazione e ora procediamo direttamente alla conversione (esportazione) di xls in xml.

1. Per fare ciò, aprire il file con i dati che devono essere superati. Quindi seleziona il primo elemento nel menu a discesa "Converti un intervallo in un elenco XML ..."

2. Si aprirà una piccola finestra, di cosa hai bisogno? Ci sono pulsanti di opzione, No e Sì, a cosa servono? È semplice, se si dispone di un'intestazione per i dati (nel mio caso lo è), selezionare Sì e, in caso contrario, No. Quindi fare clic sul rettangolo piccolo nella riga superiore.

3. Seleziona l'area dati che convertiamo e fai clic sul pulsante a destra nella finestra che appare. Viene restituita la finestra precedente, in cui si fa clic su OK.

4. Il tuo tablet dovrebbe cambiare, puoi dire cambiamento, sembra così per me:

6. Nell'elenco a discesa "Tipo file", selezionare i dati XML, fare clic su "Salva".

Congratulazioni, il tuo file è stato creato!

Spero che tutto sia stato dichiarato in dettaglio e chiaramente, ma se hai domande, scrivi!

Durante lo sviluppo di un sistema di gestione elettronica dei documenti, era necessario implementare funzioni per esportare i dati nei formati più diffusi. In particolare, nel formato Microsoft Excel. I requisiti di esportazione erano abbastanza semplici: esportare dati con un minimo di formattazione, ad es. nessuna cella unita, giochi con caratteri, ecc. XLSX e Excel XML.

In questo caso, parlerò di Excel XML.

Quindi, in qualsiasi sistema con una ferita che opera con dati tabulari, sorge la necessità o meno di esportare i dati. Gli obiettivi di esportazione sono diversi:

L'implementazione di un set di funzioni in una classe per la scrittura di valori di celle e righe è un requisito di base, che implica la creazione di funzioni per la scrittura di valori di celle tipi specificati e la possibilità di scrivere la riga finita in un file.

La capacità di lavorare con una quantità illimitata di dati - ovviamente, la classe di esportazione stessa non può essere responsabile del volume registrato, ma deve fornire funzioni per scrivere dati su disco e liberarli memoria ad accesso casuale per il prossimo pezzo di dati.

Oltre ai requisiti descritti, è stato necessario aggiungere funzioni di servizio:

  • Filtro automatico attivo
  • Comprimi un file in zip.

Implementazione

Prima di tutto, quando creo una classe, controllo il nome del file finale e richiedo il numero di colonne e righe. Il file deve avere un nome valido e deve esistere la cartella in cui verrà salvato. È tutto come al solito.
Il formato XML di Excel consente di salvare le informazioni sull'utente che lo ha creato nel file, pertanto, durante la creazione dell'intestazione, scrivo il nome dell'organizzazione, le informazioni sull'utente e la data di creazione del file.

Funzione pubblica writeDocumentProperties ($ organisation \u003d , $ user \u003d null) (fwrite ($ this-\u003e file, " "); if (! is_null ($ user)) (fwrite ($ this-\u003e file," ". $ user-\u003e descrizione.""); fwrite ($ this-\u003e file," ". $ user-\u003e descrizione."");) $ dt \u003d new Datetime (); $ dt_string \u003d $ dt-\u003e format (" Y-m-d \\ TH: i: s \\ Z "); fwrite ($ this-\u003e file," ". $ dt_string.""); fwrite ($ this-\u003e file," ". $ dt_string.""); if (! is_null ($ organisation)) fwrite ($ this-\u003e file," ". $ organisation-\u003e name.""); fwrite ($ this-\u003e file," 12.00"); fwrite ($ this-\u003e file,""); }
È vero, è in questa funzione che vengono utilizzate le entità del sistema del flusso di lavoro: organizzazione (organizzazione) e utente (utente). Sostituire queste entità con, diciamo, i valori di stringa non è un problema.

Il più interessante nel titolo è l'informazione di stile. Nel formato XML di Excel sono implementati in modo molto conveniente, quindi creo una tabella con stili per righe, data / ora e collegamento ipertestuale.

Funzione pubblica writeStyles () (fwrite ($ this-\u003e file, ""); //default style fwrite($this->file, ""); // Fwrite stile Datetime ($ this-\u003e file,""); fwrite ($ this-\u003e file,""); fwrite ($ this-\u003e file,""); // Fwrite in stile hyperlink ($ this-\u003e file,""); // Bww fwrite ($ this-\u003e file,""); fwrite ($ this-\u003e file,""); }

Il lavoro preparatorio è terminato, è possibile procedere alla scrittura dei dati. L'apertura di un foglio di lavoro è solo un paio di tag, proprio in quel momento vengono utilizzate le informazioni sul numero di colonne e righe.

Funzione pubblica openWorksheet () (fwrite ($ this-\u003e file, " "); fwrite ($ this-\u003e file, strtr ("

", array (" (col_count) "\u003d\u003e $ this-\u003e colCount," (row_count) "\u003d\u003e $ this-\u003e rowCount)));)
Ma ecco un resoconto della serie: il processo è più interessante. Una classe dovrebbe funzionare rapidamente ed elaborare una quantità illimitata di dati, poiché i record possono essere centomila o addirittura un milione! Se vuoi la velocità - lavora con la memoria, se vuoi una quantità illimitata di dati - lavora con il disco. Per riconciliare i requisiti, implementate le funzioni resetRow e flushRow.
Il primo pulisce la riga corrente, dopodiché può essere nuovamente riempito di dati e il secondo scrive la riga corrente su un file aperto sul disco. Il loro uso congiunto consente di mantenere un equilibrio tra la velocità e la quantità di memoria utilizzata.

Funzione pubblica resetRow () ($ this-\u003e currentRow \u003d array ();) funzione pubblica flushRow () (fwrite ($ this-\u003e file, implode ("", $ this-\u003e currentRow)); unset ($ this-\u003e currentRow);)
Ogni cella è scritta da una funzione corrispondente al tipo di dati, ovvero appendCellxxx, dove xxx è il tipo di dati. I tipi di dati validi sono: Num, String, Real, DateTime, Date, Time, Link. Esempio di funzione per scrivere un valore numerico:

Funzione pubblica appendCellNum ($ value) ($ this-\u003e currentRow \u003d " ". $ value.""; }
Dopo aver registrato tutti i dati, resta da chiudere il foglio di lavoro e la cartella di lavoro.

Applicazione

L'uso della classe descritta si basa sull'esportazione di dati tramite il provider CArrayDataProvider. Tuttavia, supponendo che la quantità di dati esportati possa rivelarsi molto elevata, viene utilizzato lo iteratore speciale CDataProviderIterator, che scorre i dati restituiti di 100 record (è possibile specificare un numero diverso di record).

Funzione pubblica exportExcelXML ($ organizzazione, $ utente e $ nomefile) ($ this -\u003e _ provider \u003d new CArrayDataProvider (/ * query * /); Yii :: import ("ext.AlxdExportExcelXML.AlxdExportExcelXML"); $ export \u003d new AlxdExportExcelXML ($ nomefile, conteggio ($ questo -\u003e _ attributi), $ questo -\u003e _ provider-\u003e getTotalItemCount () + 1); $ export-\u003e openWriter (); $ export-\u003e openWorkbook (); $ export-\u003e writeDocumentProperties ($ organizzazione, $ utente); $ export-\u003e writeStyles (); $ export-\u003e openWorksheet (); // riga del titolo $ export-\u003e resetRow (); $ export-\u003e openRow (true); foreach ($ this -\u003e _ attributi come $ code \u003d\u003e $ format) $ export-\u003e appendCellString ($ this -\u003e _ objectref-\u003e getAttributeLabel ($ code)); $ export-\u003e closeRow (); $ export-\u003e flushRow (); // righe di dati $ righe \u003d nuovo CDataProviderIterator ($ this -\u003e _ provider, 100); foreach ($ righe come $ riga) ($ export-\u003e resetRow (); $ export-\u003e openRow (); foreach ($ this -\u003e _ attributi come $ code \u003d\u003e $ format) (switch ($ format-\u003e type) (case "Num": $ export-\u003e appendCellNum ($ row [$ code]); / * altri tipi * / default: $ export-\u003e append CellString (""); )) $ export-\u003e closeRow (); $ export-\u003e flushRow (); ) // chiude tutto $ export-\u003e closeWorksheet (); $ export-\u003e closeWorkbook (); $ export-\u003e closeWriter (); // file zip $ export-\u003e zip (); $ nomefile \u003d $ export-\u003e getZipFullFileName (); )
Nel mio caso, ogni riga è scritta su disco, il che, per ora, è abbastanza accettabile, ma potrebbe richiedere modifiche in futuro. Ad esempio, sarebbe saggio salvare non tutte le righe, ma ogni dieci o anche cento righe alla volta. Quindi la velocità di esportazione aumenterà.

Velocità

A proposito, per esperienza personale, ero convinto dell'importanza di ipotizzare l'esistenza di grandi quantità di dati in un'operazione batch, come l'esportazione.
Inizialmente, ho provato a esportare i dati utilizzando

XML è uno dei formati più comuni per l'archiviazione e lo scambio di dati tra varie applicazioni. Il programma Microsoft Excel funziona anche con i dati, quindi il problema della conversione di file dallo standard XML in formati Excel è molto rilevante. Scopriremo come eseguire questa procedura in vari modi.

I file XML sono scritti in un linguaggio di markup speciale in qualche modo simile all'HTML delle pagine Web. Pertanto, questi formati hanno una struttura abbastanza simile. Allo stesso tempo, Excel è principalmente un programma che ha diversi formati "nativi". I più famosi sono: Excel Book (XLSX) ed Excel Book 97 - 2003 (XLS). Scopriamo i modi principali per convertire i file XML in questi formati.

Metodo 1: funzionalità integrata di Excel

Excel funziona alla grande con i file XML. Lei può aprirli, cambiare, creare, salvare. Pertanto, l'opzione più semplice per il nostro compito è aprire questo oggetto e salvarlo tramite l'interfaccia dell'applicazione sotto forma di documenti XLSX o XLS.


Questa è la procedura per convertire il file XML in formato Excel attraverso l'interfaccia del programma è finita.

Metodo 2: importare dati

Il metodo sopra è adatto solo per file XML con la struttura più semplice. Tabelle più complesse durante la conversione in questo modo potrebbero non essere tradotte correttamente. Ma esiste un altro strumento Excel incorporato che ti aiuterà a importare correttamente i dati. É situato in Menu sviluppatoreche è disabilitato di default. Pertanto, prima di tutto, deve essere attivato.


Pertanto, la conversione nella direzione di cui abbiamo bisogno sarà completata con la conversione dei dati più corretta.

Metodo 3: convertitore online

Quegli utenti che per qualche motivo non hanno Excel installato sul computer, ma hanno bisogno della conversione urgente di un file dal formato XML a EXCEL, è possibile utilizzare uno dei tanti servizi online specializzati per la conversione. Uno dei siti più convenienti di questo tipo è Convertio.


Questa opzione può fungere da buona rete di sicurezza in caso di mancanza di accesso strumenti standard per la riformattazione in questa direzione.

Come puoi vedere, in Excel ci sono strumenti integrati che ti consentono di convertire un file XML in uno dei formati "nativi" di questo programma. Le istanze più semplici possono essere facilmente convertite utilizzando la funzione standard "Salva con nome ...". Per i documenti con una struttura più complessa, esiste una procedura di conversione separata tramite l'importazione. Gli utenti che per qualche motivo non possono utilizzare questi strumenti hanno la possibilità di completare l'attività utilizzando servizi online specializzati per la conversione di file.

Se si desidera creare un file di dati XML e un file di schema XML da un intervallo di celle in un foglio di lavoro, è possibile utilizzare la versione 1.1 del componente aggiuntivo Strumenti XML per Excel 2003 per estendere le funzionalità XML esistenti in Microsoft Excel 2007 e versioni successive.

Nota: Questo componente aggiuntivo è stato sviluppato per Excel 2003. Documentazione e interfaccia utente fare riferimento agli elenchi che nelle versioni dell'applicazione successive a Excel 2003 sono chiamati fogli di calcolo Excel.

Per ulteriori informazioni sull'uso di questo componente aggiuntivo, vedere Utilizzo del componente aggiuntivo XML Tools 1.1 per Excel 2003.

Passaggio 2: convertire un intervallo di celle in una tabella XML

    Immettere i dati per i quali si desidera creare un file di dati XML e un file di schema XML. I dati dovrebbero essere presentati in formato tabellare sotto forma di colonne e righe (i cosiddetti dati ordinari).

    linguetta Add-on in gruppo Comandi del menu fai clic sulla freccia accanto all'iscrizione Strumenti XML e premere il pulsante Converti intervallo in elenco XML.

    Immettere l'intervallo di celle con i dati che si desidera convertire come collegamento assoluto nella casella di testo.

    In campo La prima riga contiene i nomi delle colonne Selezionare Nonse la prima riga contiene dati, o se la prima riga contiene intestazioni di colonna e fare clic ok.

    Excel creerà automaticamente schema XML, assocerà le celle allo schema e creerà una tabella XML.

    Importante: Se l'editor di Visual Basic si apre e visualizza il messaggio di errore Visual Basic, Applications Edition (VBA), attenersi alla seguente procedura:

    1. premi il bottone ok.

      Nella riga evidenziata del modulo di codice VBA, rimuovere "50" dalla riga. In altre parole, cambia:
      XMLDoc come MSXML2 . DOMDocument50
      Per:
      XMLDoc come Msxml2. Documento della Camera

      Premere F5 per cercare la riga successiva contenente il testo "XMLDoc As msxml2.DOMDocument50", fare clic su ok e cambia la linea come nel paragrafo precedente.

      Premere di nuovo F5 per trovare e modificare altre istanze di linea.

      Se il messaggio di errore VBA non viene più visualizzato dopo aver premuto F5, chiudere l'editor di Visual Basic per tornare al libro. L'intervallo di celle verrà convertito in una tabella XML.

      Nota: Per visualizzare tutte le mappe XML nel libro, nella scheda Sviluppatore in gruppo XML premi il bottone fonte per visualizzare il riquadro attività Origine XML. Nella parte inferiore del riquadro attività Origine XML, fare clic su Mappe XML.

      Se la scheda Sviluppatore non visibile, seguire i primi tre passaggi nella sezione successiva per aggiungerlo alla barra multifunzione di Excel.

Passaggio 3. Esportare la tabella XML in un file di dati XML (XML)

Nota: Quando si creano mappe XML ed esportano dati in Excel in file XML, esiste un limite al numero di righe che possono essere esportate. Quando si esporta in un file XML da Excel, è possibile salvare fino a 65.536 righe. Se il file contiene più di 65.536 righe, Excel sarà in grado di esportare solo le prime righe (numero di righe mod 65 537). Ad esempio, se un foglio di lavoro contiene 70.000 righe, Excel esporta 4.464 righe (70.000 mod 65.537). Si consiglia di seguire uno dei seguenti suggerimenti: 1) utilizzare il formato XLSX; 2) salvare il file nel formato "XML Table 2003 (* .xml)" (questo perderà la mappatura); 3) elimina tutte le righe dopo 65 536 e quindi esporta nuovamente (le mappature verranno salvate, ma le righe andranno perse alla fine del file).

XML è un formato universale per lavorare con i dati. È supportato da molti programmi, compresi quelli della sfera DBMS. Pertanto, la conversione delle informazioni in XML è importante proprio dal punto di vista dell'interazione e dello scambio di dati tra diverse applicazioni. Excel è solo uno dei programmi che funzionano con le tabelle e può persino manipolare i database. Vediamo come convertire i file Excel in XML.

La conversione dei dati in formato XML non è un processo così semplice, poiché nel suo corso deve essere creato uno schema speciale (schema.xml). Tuttavia, per convertire le informazioni in file più semplice questo formato è sufficiente avere a portata di mano i soliti strumenti per il salvataggio in Excel, ma per creare un elemento ben strutturato dovrai armeggiare a fondo con l'elaborazione del diagramma e il collegamento al documento.

Metodo 1: facile salvataggio

In Excel, puoi salvare i dati in formato XML semplicemente usando il menu "Salva come…". È vero, non esiste alcuna garanzia che tutti i programmi funzionino correttamente con un file creato in questo modo. E non in tutti i casi, questo metodo funziona.


Pertanto, la conversione del file da Excel in formato XML sarà completata.

Metodo 2: Strumenti per gli sviluppatori

È possibile convertire il formato Excel in XML utilizzando gli strumenti per sviluppatori nella scheda del programma. Allo stesso tempo, se l'utente fa tutto correttamente, l'output sarà, a differenza del metodo precedente, un file XML completo che verrà interpretato correttamente applicazioni di terzi. Ma devi immediatamente dire che non tutti i principianti possono avere conoscenze e competenze sufficienti per imparare immediatamente come convertire i dati in questo modo.

  1. Per impostazione predefinita, la barra degli strumenti dello sviluppatore è disabilitata. Pertanto, prima di tutto, è necessario attivarlo. Vai alla scheda "File" e fai clic sull'elemento "Parametri".
  2. Nella finestra che si apre, passa alla sottosezione "Impostazione nastro". Nella parte destra della finestra, seleziona la casella accanto al valore "Sviluppatore". Successivamente, fai clic sul pulsante oksituato nella parte inferiore della finestra. La barra degli strumenti dello sviluppatore è ora abilitata.
  3. Quindi, apri foglio di calcolo Excel nel programma in qualsiasi modo conveniente.
  4. Sulla base di ciò, dobbiamo creare uno schema, che si forma in qualsiasi editor di testo. Per questi scopi, puoi usare il solito Blocco note di Windows, ma è meglio usare un'applicazione specializzata per programmare e lavorare con i linguaggi di markup Notepad ++. Lanciamo questo programma. In esso creiamo il circuito. Nel nostro esempio, sembrerà che lo screenshot seguente mostri la finestra di Notepad ++.

    Come puoi vedere, il tag di apertura e chiusura per l'intero documento è "Data-set". Nello stesso ruolo, per ogni riga, il tag "Disco". Per uno schema, sarà abbastanza se prendiamo solo due righe della tabella e non traduciamo tutto manualmente in XML. Il nome del tag della colonna di apertura e chiusura può essere arbitrario, ma in questo caso, per comodità, preferiamo semplicemente tradurre i nomi delle colonne in lingua russa in lingua inglese. Dopo aver inserito i dati, li salviamo semplicemente attraverso la funzionalità di un editor di testo ovunque sul disco rigido in formato XML chiamato "Schema".

  5. Ancora una volta, vai al programma Excel con la tabella già aperta. Passa alla scheda "Sviluppatore". Sul nastro nella casella degli strumenti XML fare clic sul pulsante "Fonte". Nel campo che si apre, sul lato sinistro della finestra, fai clic sul pulsante "Mappe XML ...".
  6. Nella finestra che si apre, fai clic sul pulsante "Inserisci ...".
  7. Viene avviata la finestra di selezione della sorgente. Andiamo alla directory della posizione del diagramma compilata in precedenza, selezionala e fai clic sul pulsante "Aperto".
  8. Dopo che gli elementi dello schema sono apparsi nella finestra, trascinarli con il cursore nelle celle corrispondenti dei nomi delle colonne della tabella.
  9. Facciamo clic con il tasto destro sulla tabella risultante. Nel menu di scelta rapida, scorrere gli elementi XML e "Esportare…". Successivamente, salva il file in qualsiasi directory.

Come puoi vedere, ci sono due modi principali per convertire i file XLS e XLSX in formato XML programma Microsoft Eccellere Il primo è estremamente semplice e consiste in una procedura di salvataggio elementare con una data estensione tramite una funzione "Salva come…". Semplicità e chiarezza questa opzionesenza dubbio sono benefici. Ma ha un difetto molto serio. La conversione viene eseguita senza tenere conto di determinati standard e pertanto un file convertito in questo modo da applicazioni di terze parti potrebbe semplicemente non essere riconosciuto. La seconda opzione prevede la mappatura dell'XML. A differenza del primo metodo, la tabella convertita secondo questo schema sarà conforme a tutti gli standard di qualità XML. Ma, sfortunatamente, non tutti gli utenti possono capire rapidamente le sfumature di questa procedura.

LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam