DZWONEK

Są tacy, którzy czytają te wiadomości przed tobą.
Subskrybuj, aby otrzymywać świeże artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać Dzwon
Bez spamu

Opowiem ci szybki sposób na utworzenie pliku XML z tabeli Excela!

Dokumenty XML to bardzo potężna i potężna rzecz. Za pomocą jednego pliku XML możesz wypełnić stronę informacją w kilka sekund! Rzeczywiście, we wszystkich nowoczesnych silnikach (CMS) istnieje możliwość importowania z pliku hml. Więc dlaczego ja

Jak wiadomo, formaty * .xls (* .xlsx w biurze 2007) to formaty Microsoft Office Excel. 2003 biuro to już przeszłość, jest już rok 2010, ale pracuję na rok 2007 i dlatego opowiem o nim. Chodźmy!

1. Przejdź do witryny Microsoft i pobierz dodatek do pracy z XML. Pobierz dodatek do programu Excel 2003: Dodatek do narzędzi XML. Waży niewiele, 397 KB.



2. Zainstaluj go na swoim komputerze. W instalacji nie ma nic skomplikowanego. Domyślnie dodatek jest instalowany tutaj: c: \\ Office Samples \\ OfficeExcel2003XMLToolsAddin

3. Teraz otwórz program Excel, przejdź do menu i wybierz „Opcje programu Excel”.

4. W oknie, które się pojawi, po lewej stronie wybierz element „Dodatki”, a na dole okna kliknij przycisk „Idź do ...”

5. Przed Tobą otworzy się nowe okno, w którym musisz kliknąć przycisk „Przeglądaj ...”. Jak to wygląda pokazano poniżej.

6. Teraz musisz znaleźć zainstalowany dodatek XmlTools (patrz). Wybierz i kliknij OK!

7. Jeśli wszystko zrobiłeś poprawnie, zobaczysz następujące okno! Kliknij OK, instalacja jest zakończona!

8. W górnym menu masz zakładkę dodatku, a po lewej stronie pozycję Narzędzia XML.

Wymyśliliśmy instalację, a teraz przechodzimy bezpośrednio do konwersji (eksportu) xls do xml.

1. Aby to zrobić, otwórz plik z danymi, które należy wyprzedzić. Następnie wybierz pierwszy element z menu rozwijanego „Konwertuj zakres na listę XML ...”

2. Przed Tobą otworzy się małe okno. Czego potrzebujesz? Są przyciski opcji, Nie i Tak, do czego służą? To proste, jeśli masz nagłówek do danych (w moim przypadku tak jest), wybierz Tak, a jeśli nie, to Nie. Następnie kliknij mały prostokąt w górnym rzędzie.

3. Wybierz obszar danych, który konwertujemy i kliknij przycisk po prawej stronie w wyświetlonym oknie. Poprzednie okno jest zwracane, w którym klikamy OK.

4. Twój tablet powinien się zmienić, możesz powiedzieć zmianę, dla mnie wygląda to tak:

6. Z listy rozwijanej „Typ pliku” wybierz dane XML, kliknij „Zapisz”.

Gratulacje, Twój plik został utworzony!

Mam nadzieję, że wszystko zostało szczegółowo i wyraźnie określone, ale jeśli masz pytania, napisz!

Podczas opracowywania elektronicznego systemu zarządzania dokumentami konieczne było wdrożenie funkcji eksportowania danych w popularnych formatach. W szczególności w formacie Microsoft Excel. Wymagania eksportowe były dość proste - eksport danych przy minimalnym formatowaniu, tj. brak scalonych komórek, gier z czcionkami itp. XLSX i Excel XML.

W takim przypadku opowiem o Excel XML.

Tak więc w każdym systemie operującym na danych tabelarycznych, ranie lub później istnieje potrzeba eksportu danych. Cele eksportu są różne:

Wdrożenie zestawu funkcji w klasie do zapisywania wartości komórek i wierszy jest podstawowym wymogiem, implikującym utworzenie funkcji do zapisu wartości komórek określone typy oraz możliwość zapisania gotowego wiersza do pliku.

Możliwość pracy z nieograniczoną ilością danych - oczywiście sama klasa eksportu nie będzie w stanie odpowiedzieć na nagrany wolumin, ale musi zapewnić funkcje zapisu danych na dysk i zwolnienia go pamięć o dostępie swobodnym na następny kawałek danych.

Oprócz opisanych wymagań konieczne było dodanie funkcji serwisowych:

  • Auto filtr włączony
  • Skompresuj plik w formacie zip.

Realizacja

Przede wszystkim, tworząc klasę, sprawdzam ostateczną nazwę pliku i żądam liczby kolumn i wierszy. Plik musi mieć prawidłową nazwę, a folder, w którym zostanie zapisany, musi istnieć. Wszystko jest jak zwykle.
Format Excel XML umożliwia zapisanie informacji o użytkowniku, który go utworzył w pliku, dlatego podczas tworzenia nagłówka zapisuję nazwę organizacji, informacje o użytkowniku i datę utworzenia pliku.

Funkcja publiczna writeDocumentProperties ($ organizacja \u003d , $ użytkownik \u003d null) (fwrite ($ this-\u003e plik, „ "); if (! is_null ($ user)) (fwrite ($ this-\u003e file," „. $ user-\u003e opis.”„); fwrite ($ this-\u003e plik” „. $ user-\u003e opis.”");) $ dt \u003d new Datetime (); $ dt_string \u003d $ dt-\u003e format („ Y-m-d \\ TH: i: s \\ Z ”); fwrite ($ this-\u003e plik,” „. $ dt_string.”„); fwrite ($ this-\u003e plik” „. $ dt_string.”"); if (! is_null ($ organization)) fwrite ($ this-\u003e file," „. $ organizacja-\u003e nazwa.”„); fwrite ($ this-\u003e plik” 12.00„); fwrite ($ this-\u003e plik”"); }
To prawda, że \u200b\u200bw tej funkcji wykorzystywane są jednostki systemu przepływu pracy - organizacja (organizacja) i użytkownik (użytkownik). Zastąpienie tych encji, powiedzmy, ciągami znaków nie stanowi problemu.

Najciekawsze w tytule są informacje o stylu. W formacie Excel XML są one implementowane bardzo wygodnie, więc po prostu tworzę tabelę ze stylami dla wierszy, daty / godziny i hiperłącza.

Funkcja publiczna writeStyles () (fwrite ($ this-\u003e plik, „"); //default style fwrite($this->file, ""); // fwrite w stylu Datetime ($ this-\u003e plik,”„); fwrite ($ this-\u003e plik”„); fwrite ($ this-\u003e plik”"); // fwrite w stylu hiperłącza (plik $ this-\u003e,”"); // Bold fwrite ($ this-\u003e plik,"„); fwrite ($ this-\u003e plik”"); }

Prace przygotowawcze zostały zakończone, możesz przystąpić do zapisywania danych. Otwarcie arkusza roboczego to tylko kilka tagów, w tym momencie używana jest informacja o liczbie kolumn i wierszy.

Funkcja publiczna openWorksheet () (fwrite ($ this-\u003e plik, „ "); fwrite ($ this-\u003e plik, strtr („

", array (" (col_count) "\u003d\u003e $ this-\u003e colCount," (row_count) "\u003d\u003e $ this-\u003e rowCount)));)
Ale oto zapis serii - proces jest bardziej interesujący. Klasa powinna działać szybko i przetwarzać nieograniczoną ilość danych, ponieważ rekordy mogą wynosić sto tysięcy, a nawet milion! Jeśli chcesz prędkości - pracuj z pamięcią, jeśli chcesz nieograniczoną ilość danych - pracuj z dyskiem. Aby pogodzić wymagania, zaimplementowano funkcje resetRow i flushRow.
Pierwszy usuwa bieżący wiersz, po czym można go ponownie wypełnić danymi, a drugi zapisuje bieżący wiersz w otwartym pliku na dysku. Ich wspólne użycie pozwala zachować równowagę między prędkością a ilością używanej pamięci.

Funkcja publiczna resetRow () ($ this-\u003e currentRow \u003d array ();) funkcja publiczna flushRow () (fwrite ($ this-\u003e plik, implode ("", $ this-\u003e currentRow)); unset ($ this-\u003e currentRow);)
Każda komórka jest zapisywana przez funkcję odpowiadającą typowi danych, mianowicie appendCellxxx, gdzie xxx jest typem danych. Prawidłowe typy danych to: Num, String, Real, DateTime, Date, Time, Link. Przykładowa funkcja zapisu wartości liczbowej:

AppendCellNum funkcja publiczna (wartość $) ($ this-\u003e currentRow \u003d " „. $ wartość.”"; }
Po zarejestrowaniu wszystkich danych pozostaje zamknąć arkusz i skoroszyt.

Podanie

Zastosowanie opisanej klasy opiera się na eksporcie danych przy użyciu dostawcy CArrayDataProvider. Jednak przy założeniu, że ilość wyeksportowanych danych może okazać się bardzo duża, używany jest specjalny iterator CDataProviderIterator, który iteruje zwracane dane o 100 rekordów (można określić inną liczbę rekordów).

Funkcja publiczna exportExcelXML ($ organizacja, $ użytkownik i $ nazwa pliku) ($ this -\u003e _ dostawca \u003d nowy CArrayDataProvider (/ * query * /); Yii :: import ("ext.AlxdExportExcelXML.AlxdExportExcelXML"); $ export \u003d nowy AlxdExportExcelXML ($ nazwa pliku, liczba ($ this -\u003e _ atrybuty), $ this -\u003e _ dostawca-\u003e getTotalItemCount () + 1); $ export-\u003e openWriter (); $ export-\u003e openWorkbook (); $ export-\u003e writeDocumentProperties ($ organizacja, $ użytkownik); $ eksport-\u003e writeStyles (); $ eksport-\u003e openWorksheet (); // wiersz tytułu $ eksport-\u003e resetRow (); $ eksport-\u003e openRow (prawda); foreach ($ this -\u003e _ atrybuty jako $ code \u003d\u003e format $) $ export-\u003e appendCellString ($ this -\u003e _ objectref-\u003e getAttributeLabel ($ code)); $ export-\u003e closeRow (); $ export-\u003e flushRow (); // wiersze danych $ wiersze \u003d nowy CDataProviderIterator ($ ten -\u003e _ dostawca, 100); foreach ($ wiersze jako $ wiersz) ($ export-\u003e resetRow (); $ export-\u003e openRow (); foreach ($ this -\u003e _ atrybuty jako $ code \u003d\u003e $ format) (switch ($ format-\u003e type) (case "Num": $ export-\u003e appendCellNum ($ row [$ code]); / * inne typy * / default: $ export-\u003e append CellString („”); )) $ export-\u003e closeRow (); $ export-\u003e flushRow (); ) // zamknij wszystkie $ export-\u003e closeWorksheet (); $ export-\u003e closeWorkbook (); $ export-\u003e closeWriter (); // plik zip $ export-\u003e zip (); $ filename \u003d $ export-\u003e getZipFullFileName (); )
W moim przypadku każdy wiersz jest zapisywany na dysku, co na razie jest całkiem do przyjęcia, ale może wymagać zmian w przyszłości. Na przykład rozsądnie byłoby zapisać nie każdy rząd, ale co dziesięć, a nawet sto rzędów na raz. Wtedy prędkość eksportu wzrośnie.

Prędkość

Nawiasem mówiąc, z własnego doświadczenia byłem przekonany, jak ważne jest przyjęcie możliwości istnienia dużych ilości danych w operacji wsadowej, takiej jak eksport.
Początkowo próbowałem eksportować dane przy użyciu

XML jest jednym z najpopularniejszych formatów przechowywania i wymiany danych między nimi różne zastosowania. Program Microsoft Excel działa również z danymi, więc kwestia konwersji plików ze standardu XML na formaty Excel jest bardzo istotna. Dowiemy się, jak wykonać tę procedurę na różne sposoby.

Pliki XML są zapisywane w specjalnym języku znaczników podobnym do HTML stron internetowych. Dlatego te formaty mają dość podobną strukturę. Jednocześnie Excel jest przede wszystkim programem, który ma kilka „rodzimych” formatów. Najbardziej znane z nich to: Excel Book (XLSX) i Excel Book 97 - 2003 (XLS). Odkryjmy główne sposoby konwertowania plików XML na te formaty.

Metoda 1: Wbudowana funkcjonalność programu Excel

Excel świetnie współpracuje z plikami XML. Może je otwierać, zmieniać, tworzyć, zapisywać. Dlatego najłatwiejszą opcją dla naszego zadania jest otwarcie tego obiektu i zapisanie go przez interfejs aplikacji w postaci dokumentów XLSX lub XLS.


Jest to procedura konwersji pliku XML do format Excel przez interfejs programu jest zakończony.

Metoda 2: import danych

Powyższa metoda jest odpowiednia tylko dla plików XML o najprostszej strukturze. Bardziej złożone tabele podczas konwersji w ten sposób mogą nie zostać poprawnie przetłumaczone. Istnieje jednak inne wbudowane narzędzie Excel, które pomoże poprawnie importować dane. To jest zlokalizowane w Menu programistyktóry jest domyślnie wyłączony. Dlatego przede wszystkim należy go aktywować.


Tak więc konwersja w kierunku, którego potrzebujemy, zostanie zakończona z najbardziej poprawną konwersją danych.

Metoda 3: konwerter online

Użytkownicy, którzy z jakiegoś powodu nie mają zainstalowanego programu Excel na komputerze, ale potrzebują pilnej konwersji pliku z formatu XML na EXCEL, mogą skorzystać z jednej z wielu specjalistycznych usług online do konwersji. Jedną z najwygodniejszych stron tego typu jest Convertio.


Ta opcja może służyć jako dobre ubezpieczenie od braku dostępu do standardowe narzędzia do przeformatowania w tym kierunku.

Jak widać, w programie Excel są wbudowane narzędzia, które pozwalają na konwersję pliku XML do jednego z „rodzimych” formatów tego programu. Najprostsze instancje można łatwo przekonwertować za pomocą standardowej funkcji Zapisz jako ... W przypadku dokumentów o bardziej złożonej strukturze istnieje osobna procedura konwersji poprzez import. Użytkownicy, którzy z jakiegoś powodu nie mogą korzystać z tych narzędzi, mają możliwość wykonania zadania przy użyciu specjalistycznych usług online do konwersji plików.

Jeśli chcesz utworzyć plik danych XML i plik schematu XML z zakresu komórek w arkuszu, możesz użyć wersji 1.1 dodatku XML Tools for Excel 2003, aby rozszerzyć istniejące możliwości XML w programie Microsoft Excel 2007 i nowszych.

Uwaga: Ten dodatek został opracowany dla programu Excel 2003. Dokumentacja i interfejs użytkownika odnoszą się do list, które w wersjach aplikacji późniejszych niż Excel 2003 są nazywane arkuszami kalkulacyjnymi Excel.

Aby uzyskać więcej informacji na temat pracy z tym dodatkiem, zobacz Korzystanie z dodatku XML Tools 1.1 dla programu Excel 2003.

Krok 2: Przekształć zakres komórek w tabelę XML

    Wprowadź dane, dla których chcesz utworzyć plik danych XML i plik schematu XML. Dane powinny być prezentowane w formie tabelarycznej w postaci kolumn i wierszy (tzw. Dane zwykłe).

    Patka Dodatki w grupie Polecenia menu kliknij strzałkę obok napisu Narzędzia XML i naciśnij przycisk Konwertuj zakres na listę XML.

    Wprowadź zakres komórek z danymi, które chcesz przekonwertować jako bezwzględny link w polu tekstowym.

    W polu Pierwszy wiersz zawiera nazwy kolumn Wybierz Niejeśli pierwszy wiersz zawiera dane, lub takjeśli pierwszy wiersz zawiera nagłówki kolumn i kliknij ok.

    Excel utworzy się automatycznie schemat XML, wiąże komórki ze schematem i tworzy tabelę XML.

    Ważny: Jeśli otworzy się Edytor Visual Basic i wyświetli komunikat o błędzie Visual Basic for Applications (VBA), wykonaj następujące kroki:

    1. naciśnij przycisk ok.

      W podświetlonym wierszu modułu kodu VBA usuń „50” z wiersza. Innymi słowy, zmień:
      XMLDoc jako MSXML2 . DOMDocument50
      Do:
      XMLDoc jako Msxml2. Dokument domowy

      Naciśnij klawisz F5, aby wyszukać następny wiersz zawierający tekst „XMLDoc As msxml2.DOMDocument50”, kliknij ok i zmień linię jak w poprzednim akapicie.

      Naciśnij F5 ponownie, aby znaleźć i zmodyfikować inne wystąpienia linii.

      Jeśli komunikat o błędzie VBA nie pojawia się już po naciśnięciu F5, zamknij edytor Visual Basic, aby powrócić do książki. Zakres komórek zostanie przekonwertowany na tabelę XML.

      Uwaga: Aby wyświetlić wszystkie mapy XML w książce, na zakładce Deweloper w grupie XML naciśnij przycisk Źródło aby wyświetlić okienko zadań Źródło XML. W dolnej części okienka zadań Źródło XML kliknij Mapy XML.

      Jeśli zakładka Deweloper niewidoczne, wykonaj pierwsze trzy kroki w następnej sekcji, aby dodać ją do wstążki Excel.

Krok 3. Wyeksportuj tabelę XML do pliku danych XML (XML)

Uwaga: Podczas tworzenia map XML i eksportowania danych w programie Excel do plików XML istnieje ograniczenie liczby wierszy, które można wyeksportować. Podczas eksportowania do pliku XML z Excela można zapisać do 65 536 linii. Jeśli plik zawiera więcej niż 65 536 linii, Excel będzie mógł wyeksportować tylko pierwsze linie (liczba linii mod 65 537). Na przykład, jeśli arkusz zawiera 70 000 wierszy, Excel eksportuje 4 464 wiersze (70 000 mod 65 537). Zalecamy skorzystanie z jednej z następujących wskazówek: 1) użyj formatu XLSX; 2) zapisz plik w formacie „Tabela XML 2003 (* .xml)” (spowoduje to utratę mapowania); 3) usuń wszystkie linie po 65 536, a następnie ponownie wyeksportuj (mapowania zostaną zapisane, ale linie zostaną utracone na końcu pliku).

XML to uniwersalny format do pracy z danymi. Obsługiwany jest przez wiele programów, w tym ze sfery DBMS. Dlatego konwersja informacji na XML jest ważna właśnie z punktu widzenia interakcji i wymiany danych między różnymi aplikacjami. Excel jest tylko jednym z programów, które działają z tabelami, a nawet mogą manipulować bazami danych. Zobaczmy, jak przekonwertować pliki Excel na XML.

Konwersja danych do formatu XML nie jest tak prostym procesem, ponieważ w jego trakcie należy utworzyć specjalny schemat (schema.xml). Aby jednak przekonwertować informacje na najprostszy plik ten format wystarczy mieć pod ręką zwykłe narzędzia do zapisywania w Excelu, ale aby stworzyć dobrze ustrukturyzowany element, będziesz musiał gruntownie majstrować przy sporządzaniu schematu i jego połączeniu z dokumentem.

Metoda 1: łatwe zapisywanie

W programie Excel można zapisywać dane w formacie XML po prostu za pomocą menu "Zapisz jako…". To prawda, że \u200b\u200bnie ma gwarancji, że wtedy wszystkie programy będą działać poprawnie z plikiem utworzonym w ten sposób. I nie we wszystkich przypadkach ta metoda działa.


Tak więc konwersja pliku z formatu Excel do formatu XML zostanie zakończona.

Metoda 2: Narzędzia programistyczne

Możesz przekonwertować format Excel na XML za pomocą narzędzi programistycznych na karcie programu. Jednocześnie, jeśli użytkownik zrobi wszystko poprawnie, wynik będzie, w przeciwieństwie do poprzedniej metody, pełnoprawnym plikiem XML, który zostanie poprawnie zinterpretowany aplikacje stron trzecich. Ale musisz od razu powiedzieć, że nie każdy początkujący może mieć wystarczającą wiedzę i umiejętności, aby natychmiast nauczyć się konwertować dane w ten sposób.

  1. Domyślnie pasek narzędzi programisty jest wyłączony. Dlatego przede wszystkim musisz go aktywować. Idź do zakładki "Plik" i kliknij element „Parametry”.
  2. W oknie, które zostanie otwarte, przejdź do podsekcji „Konfiguracja wstążki”. W prawej części okna zaznacz pole obok wartości "Deweloper". Następnie kliknij przycisk okznajduje się w dolnej części okna. Pasek narzędzi programisty jest teraz włączony.
  3. Następnie otwórz excel arkusz kalkulacyjny w programie w dowolny dogodny sposób.
  4. Na jego podstawie musimy stworzyć schemat utworzony w dowolnym edytorze tekstu. Do tych celów możesz użyć zwykłego Notatnik Windows, ale lepiej jest używać specjalistycznej aplikacji do programowania i pracy z językami znaczników Notepad ++. Uruchamiamy ten program. W nim tworzymy obwód. W naszym przykładzie będzie to wyglądać tak, jak na poniższym zrzucie ekranu pokazano okno Notepad ++.

    Jak widać, otwierającym i zamykającym znacznikiem dla dokumentu jako całości jest „Zestaw danych”. W tej samej roli dla każdego wiersza działa znacznik. "Rekord". Wystarczy, jeśli weźmiemy tylko dwa wiersze tabeli i nie przetłumaczymy wszystkiego ręcznie na XML. Nazwa otwierającego i zamykającego znacznika kolumny może być dowolna, ale w tym przypadku dla wygody wolimy po prostu przetłumaczyć nazwy kolumn w języku rosyjskim na język angielski. Po wprowadzeniu danych po prostu zapisujemy je za pomocą edytora tekstu w dowolnym miejscu na dysku twardym w formacie XML o nazwie "Schemat".

  5. Ponownie przejdź do programu Excel z otwartą tabelą. Przejdź do zakładki "Deweloper". Na wstążce w przyborniku XML kliknij przycisk "Źródło". W polu, które zostanie otwarte, po lewej stronie okna kliknij przycisk „Mapy XML ...”.
  6. W oknie, które zostanie otwarte, kliknij przycisk "Dodaj ...".
  7. Otworzy się okno wyboru źródła. Przejdź do katalogu lokalizacji skompilowanego wcześniej diagramu, wybierz go i kliknij przycisk "Otwarty".
  8. Po pojawieniu się elementów schematu w oknie przeciągnij je kursorem do odpowiednich komórek nazw kolumn tabeli.
  9. Klikamy prawym przyciskiem myszy wynikową tabelę. W menu kontekstowym przejdź przez pozycje XML i "Eksport…". Następnie zapisz plik w dowolnym katalogu.

Jak widać, istnieją dwa główne sposoby konwersji plików XLS i XLSX do formatu XML program Microsoft Przewyższać Pierwszy z nich jest niezwykle prosty i polega na elementarnej procedurze składowania z danym rozszerzeniem poprzez funkcję "Zapisz jako…". Prostota i przejrzystość ta opcjaniewątpliwie są to korzyści. Ale ma jedną bardzo poważną wadę. Konwersja jest przeprowadzana bez uwzględnienia określonych standardów, dlatego plik przekonwertowany w ten sposób przez aplikacje innych firm może po prostu nie zostać rozpoznany. Druga opcja obejmuje mapowanie XML. W przeciwieństwie do pierwszej metody tabela przekonwertowana zgodnie z tym schematem będzie zgodna ze wszystkimi standardami jakości XML. Ale niestety nie każdy użytkownik może szybko zrozumieć niuanse tej procedury.

DZWONEK

Są tacy, którzy czytają te wiadomości przed tobą.
Subskrybuj, aby otrzymywać świeże artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać Dzwon
Bez spamu