Memunggah data dari excel ke xml. Kami mencipta fail XML. Mengedit, menyimpan dan mengeksport

  • 08.12.2020

XML kepada Excel dan sebaliknya, mari kita lihat lebih dekat jenis fail ini. Perlu diingatkan dengan segera bahawa dokumen Excel mempunyai banyak format, manakala XML ialah format fail. Oleh itu, jangan mengelirukan kedua-dua konsep ini.

Microsoft Excel ialah program pengiraan yang berkuasa dengan banyak fungsi berguna.

Microsoft Excel ialah utiliti khas untuk mencipta dan menyunting jadual. Dengan mereka, anda sudah boleh melakukan apa sahaja yang anda mahu: mencipta pangkalan data, rajah, formula dan jenis data lain. Ini adalah alat yang sangat berkuasa, jadi kami tidak akan membincangkan semua keupayaannya. Hari ini matlamat kami agak berbeza, dan kami tidak akan menyimpang dari topik perbincangan hari ini.

Fail XML, untuk pemahaman yang lebih mudah, direka bentuk untuk menyimpan dan menukar pelbagai data antara utiliti. Bahasa penanda ini terutamanya sering digunakan apabila menghantar maklumat melalui Internet. Dan apabila anda perlu memindahkan data jadual daripada Excel ke tapak, contohnya, anda perlu mengubah dokumen anda supaya ia dipaparkan dengan betul. Oleh itu, janganlah kita melengahkan masa kebenaran dan segera meneruskan operasi.

Bagaimana untuk menukar Excel kepada XML

Rakan-rakan yang dihormati, menukar fail sebenarnya agak mudah. Walau bagaimanapun, sesetengah pengguna mungkin menghadapi masalah semasa memindahkan data, jadi hari ini kami akan mempertimbangkan beberapa cara untuk melaksanakan rancangan kami. Oleh itu, kami mendapat kesabaran dan meneruskan tindakan:

  1. Cara paling mudah, yang mungkin tidak berfungsi dalam beberapa kes, adalah untuk menyimpan fail dalam format yang dikehendaki dalam program Microsoft Excel itu sendiri. Untuk melakukan ini, buka dokumen yang diperlukan dalam aplikasi ini. Kemudian klik pada butang "Fail" (diambil sebagai contoh Office 2013, dalam versi lain proses menyimpan mungkin sedikit berbeza) di sudut kiri atas tetingkap Excel, kemudian item "Simpan Sebagai", kemudian pilih lokasi untuk menyimpan dokumen, beri nama dan dalam tab jenis fail, nyatakan "data XML". Selepas itu, semak sama ada semuanya berjalan lancar untuk anda. Jika tidak, cuba kaedah berikut.
  2. Jadi, jika ralat berlaku dalam kes sebelumnya, maka, mungkin, salinan program anda tidak memberikan sokongan dan alat tambah yang sepadan. Untuk memasangnya, pergi ke tapak web Microsoft http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=3108, muat turun dan pasang fail ini pada komputer atau komputer riba anda. Seterusnya, mulakan program Microsoft Excel dan klik pada butang berwarna besar di sudut kiri atas tetingkap aplikasi (di sini kita sudah melihat contoh untuk versi 2007). Dalam blok yang muncul, klik pada parameter di sebelah kiri pintu keluar dari utiliti. Sekarang pergi ke item tambahan dan klik pada butang "Pergi" bertentangan dengan item "Kawalan". Kotak dialog akan muncul di mana anda perlu mengklik pada gambaran keseluruhan dan mencari dokumen yang anda muat turun dari tapak web Microsoft sebelum ini. Sekarang kita klik OK dan pergi ke tetingkap utama program, di mana anda kini mempunyai tab Alat XML - dengannya anda kini boleh mencipta fail XML dengan mudah daripada jadual sedia ada. Anda perlu menyimpannya dengan cara yang sama seperti dalam perenggan sebelumnya.
  3. Jika anda tidak mahu memuat turun kedua-dua diri anda dan komputer anda dengan maklumat sedemikian, anda boleh menggunakan utiliti penukar khas atau versi dalam talian program ini. Sebagai contoh, anda boleh memuat turun apl Format Factory, yang akan membolehkan anda mengambil semua langkah yang diperlukan. Tetapi perlu diingat bahawa fail yang disimpan dan ditukar dengan cara ini tidak selalu berfungsi pada masa hadapan. Iaitu, semasa operasi, sektor atau kawasan dalam ingatan dokumen mungkin rosak, yang akan menjejaskannya secara negatif - ia mungkin tidak dibuka dalam editor XML, contohnya. Oleh itu, adalah disyorkan untuk menggunakan sama ada program profesional atau Microsoft Excel itu sendiri.

Bagaimana untuk menterjemah XML ke Excel

Sebelum anda boleh menterjemah XML kepada Excel, anda perlu membukanya terlebih dahulu. Pertimbangkan keseluruhan proses pendek ini di bawah. Jadi mari kita mulakan:

  1. Lancarkan program menggunakan pintasan pada desktop atau melalui menu Explorer.
  2. Klik pada "Buka Buku Lain" di bahagian bawah halaman utama jika anda menggunakan Office. Dalam versi lain, prosesnya mungkin sedikit berbeza.
  3. Seterusnya, klik pada "Komputer" atau tempat lain di mana fail XML anda berada, kemudian klik "Semak imbas" dan tukar jenis data kepada "Fail XML" dalam tetingkap yang muncul.
  4. Sekarang kami sedang mencari fail yang diperlukan dan membukanya dalam program kami menggunakan butang dengan nama yang sama.
  5. Seterusnya, kami akan membincangkan cara mengubah dokumen kami. Pergi ke tab pembangun, kemudian klik pada butang import.
  6. Dalam tetingkap yang terbuka, anda perlu mencari dan memilih dokumen kami sekali lagi, yang mana anda ingin melakukan tindakan, kemudian klik pada butang "Import".
  7. Kemudian anda menyesuaikan semuanya untuk diri sendiri: kawasan import, lokasi simpan dan parameter lain. Selepas itu, anda akan menerima jadual, yang kemudian anda boleh simpan dalam format yang anda perlukan. Seperti yang anda lihat, tidak ada yang rumit.

Mari kita ringkaskan

Pembaca yang dihormati, hari ini kami telah belajar bukan sahaja cara menukar fail XML kepada Excel dan sebaliknya, tetapi juga cara mencipta dan membukanya apabila versi tidak serasi. Kami berharap semuanya berjalan lancar untuk anda dan tiada lagi soalan yang tinggal. Jangan lupa untuk berkongsi pendapat dan pengalaman anda dalam ulasan: mungkin anda tahu cara mudah untuk menukar. Beritahu pengguna lain jika anda berjaya menterjemah satu jenis dokumen. Jika ia berkesan, kemudian kongsi cara anda menggunakannya.


Saya telah bekerja dengan fail XML untuk masa yang lama, tetapi baru sekarang saya telah bertanya kepada diri sendiri soalan: Bagaimana untuk mencipta dan mengedit fail XML dalam MS Excel menggunakan cara biasa? Excel ialah alat yang mudah dan intuitif untuk mencipta, mengedit dan memproses pelbagai data. Excel dipelajari di sekolah dan, mungkin, tidak ada orang yang tahu cara bekerja pada PC dan tidak tahu asas bekerja dalam Excel. Oleh itu, pada pendapat saya, ini adalah alat yang paling sesuai yang boleh disyorkan kepada pengguna biasa untuk mencipta dan mengedit fail data untuk pelbagai aplikasi, termasuk aplikasi Web. Saya telah memasang MS Excel 2013 di rumah dan, menggunakan contohnya, saya akan menerangkan prosedur mudah yang mesti dilakukan semasa mencipta fail data XML dalam Excel. Saya fikir ini akan berfungsi dalam versi Excel yang lebih awal juga. Untuk mencipta fail data XML, kami akan melalui beberapa langkah mudah. Mari kita pertimbangkan mereka pada contoh mencipta fail data acara.

1. Pertama, anda perlu membuat dan mengisi jadual data dalam Excel mengikut struktur data. Sila gunakan item menu untuk ini Sisipkan / Jadual.

2. Mari buat skema fail XML. Untuk melakukan ini, masukkan baris berikut dalam editor teks dan simpannya dalam fail.

XHTML

0 0 0 0 Kebangkitan Kristus yang terang. Paskah 0 0 -7 0 -7 Masuknya Tuhan ke Yerusalem 1

0

0

0

0

Kebangkitan Kristus yang terang. Paskah

0

0

-7

0

-7

Masuknya Tuhan ke Yerusalem

1

3. Sekarang buka tab pemaju, tekan butang Suatu punca dan tentukan fail sumber XML. Jika perlu, dayakan item menu pemaju dalam Tetapan Excel.

4. Ia kekal untuk memadankan elemen skema dan lajur jadual dengan menyeret dan menjatuhkan elemen ke tajuk lajur yang sepadan.

5. Dan langkah terakhir: eksport data jadual ke fail XML menggunakan menu konteks. Berdiri pada mana-mana sel jadual, klik kanan, pilih XML / Eksport ... dan simpan fail XML dengan nama yang dikehendaki.

Simpan fail Excel untuk pengeditan dan penambahan kemudian. Dalam perenggan 1.-4 berikut. anda tidak perlu melakukannya!

P.S. Mengapa saya menulis nota remeh ini? Pertama, supaya tidak melupakan diri sendiri, dan kedua, saya fikir maklumat ini akan berguna kepada pengguna bermula dari versi 0.6 seterusnya ;-)

Jika anda bekerja pada komputer tempatan, maka secara lalai dokumen yang dibuat dalam Microsoft Office disimpan dalam format binari dengan sambungan .doc, .xls, .ppt, dsb., bergantung pada aplikasi di mana ia dicipta. Dokumen Word boleh disimpan dalam format Html(Bahasa Penanda Hiperteks) dan XML (Extensible Markup Language- Extensible Markup Language) dan terbitkan di rangkaian korporat atau di Internet dengan memilih daripada menu Fail perintah Simpan Sebagai Halaman Web(Simpan Sebagai Halaman Web). Padang Jenis fail(Simpan sebagai jenis) kotak dialog arahan untuk menyimpan fail dalam format seperti: Laman sesawang(Laman sesawang), Tapis halaman web(Halaman Web, Ditapis) dan Arkib web(Arkib Web). Format Laman sesawang(Halaman Web) mengekalkan semua keupayaan penyuntingan dokumen HTML. Format Tapis halaman web(Halaman Web, Ditapis) mengalih keluar beberapa kod HTML dan mengurangkan saiz fail. Format Halaman Web fail Tunggal membolehkan anda menghantar kandungan (teks dan grafik) dalam satu fail * .mht, * .mhtml.

Apabila menggunakan mana-mana format di atas, semua pilihan pemformatan disimpan dalam setiap dokumen. Pengguna pada rangkaian korporat atau di Internet yang tidak memasang Microsoft Office boleh melihat fail yang disimpan dalam format HTML atau XML dalam pelayar web atau program penyemakan imbas Internet yang lain.

Office menyediakan kesetiaan tinggi dalam tetingkap penyemak imbas dokumen yang diformatkan yang kelihatan sama seperti dalam tetingkap aplikasi. Parameter carta dan gambar, contohnya, warna dan ciri garisan, disimpan. Pengguna bukan pengekodan baru boleh mencipta halaman Web dalam Office 2003 dan menerbitkannya ke pelayan Web tanpa kehilangan kualiti dan kefungsian dokumen. Pengesanan automatik pengekodan HTML dan XML membolehkan anda melihat aksara yang betul dalam mana-mana persekitaran bahasa.

Ciri-ciri menyimpan fail dalam format HTML

Bezakan antara format HTML statik dan dinamik. Format statik digunakan apabila data jarang berubah, format dinamik digunakan apabila perlu untuk memaparkan data terkini pada masa penerbitan. Ambil perhatian bahawa Access 2002 telah menyokong penukaran objek kepada dua format HTML dinamik: ASP ( Halaman Pelayan Aktif) dan IDC / HTX. Fail asp digunakan untuk halaman web dinamik, fail idc mengandungi pertanyaan dalam bentuk pernyataan SQL, fail htx mengandungi arahan dan arahan pemformatan. Daripada data dalam fail dengan sambungan htx. templat disertakan yang menunjukkan tempat untuk memasukkan data daripada permintaan dalam fail dengan sambungan idc.

Apabila anda menyimpan dokumen dalam format HTML, Office 2003 mencipta satu fail HTML (contohnya, otchet.htm) dalam direktori yang ditentukan dan folder dengan nama yang sama yang merangkumi semua fail sokongan dokumen dan fail utama kawalan. Setiap gambar, hamparan, slaid pembentangan dan satu set data tambahan diletakkan dalam fail yang berasingan. Semua grafik ditukar secara automatik kepada format .GIF, JPG, JPEG atau .PNG, bergantung pada kandungan. Sebagai contoh, seni garisan disimpan sebagai GIF dan gambar disimpan sebagai JPEG. Apabila memindahkan dokumen sedemikian, anda mesti menyalin kedua-dua fail HTML utama dan folder dengan fail sokongan. (Untuk butiran, lihat bahagian "Jenis Fail Digunakan untuk Memaparkan Gambar dan Grafik pada Halaman Web" di bawah)

Untuk memudahkan pengeditan grafik bukan raster dengan program yang sesuai, apabila menukar dokumen Office 2003 kepada HTML, grafik disimpan dalam kedua-dua format asli dan pelayar.

Sebagai contoh, berikut ialah cara menukar objek pangkalan data Access kepada HTML dinamik:

  1. Dalam tingkap Pangkalan data(Pangkalan data) pilih objek yang diperlukan dengan mengklik tetikus dan pilih daripada menu Fail(Fail) arahan Eksport(Eksport Ke).
  2. Dalam kotak dialog Eksport objek(Eksport Ke) dalam medan Jenis fail(Simpan sebagai jenis) pilih baris Microsoft IIS 1-2 atau Microsoft ASP Pages.
  3. Pilih folder tempat fail yang dieksport akan disimpan dan masukkan nama fail dalam huruf Latin dalam medan Nama fail(Nama fail).
  4. Klik butang Eksport(Eksport).
  5. Jika anda menggunakan format Halaman Pelayan Aktif, kotak dialog muncul. Menyesuaikan Output Fail ASP(Pilihan Output Halaman Pelayan Aktif Microsoft), yang menyatakan nama sumber data ODBC. Ia akan digunakan oleh pelayan web untuk mengakses data. Masukkan alamat pelayan yang akan menjadi tuan rumah fail ASP.

Menggunakan XML yang berharga

Office 2003 menyokong XML ( Extensible Markup Language- Extensible Markup Language). Bahasa ini menyediakan alat kerjasama yang intuitif dan berkuasa dan digunakan secara meluas dalam pertukaran maklumat di Internet, tanpa mengira platform yang digunakan, format data. Format XML dibangunkan berdasarkan HTML sebagai format untuk persembahan universal data dalam rangkaian korporat dan Internet. Ia lebih berkuasa daripada HTML. Mana-mana dokumen Pejabat boleh diwakili dalam format ini.

XML memudahkan untuk mengambil data daripada dokumen Office 2003 ke dalam aplikasi XML yang lain. Anda boleh memisahkan kandungan dokumen dan sempadan format binarinya. Kandungan disediakan untuk proses pengumpulan dan analisis data automatik dengan pelarasan seterusnya. Dokumen XML boleh terdiri daripada beberapa jenis fail yang berbeza, contohnya, fail XML yang mengandungi data; fail ASP yang mengandungi halaman web untuk melihat dokumen; fail xsd yang mengandungi penerangan tentang struktur data, dsb. Dokumen tunggal boleh dilihat dalam Internet Explorer 5 dan lebih baru. Fail HTML mengandungi skrip yang memuatkan data daripada sumber XML.

Tidak seperti teg HTML generik, teg XML boleh diubah suai oleh pembangun dan oleh itu mesti diserahkan kepada perisian yang menggunakannya. Microsoft menjangkakan untuk menggunakan borang XML secara eksklusif dalam pasaran korporat. Oleh kerana sesetengah penyemak imbas tidak berfungsi dengan XML, Word menyediakan keupayaan untuk menyimpan dokumen sebagai halaman web yang ditapis tanpa menggunakan deskriptor XML. Untuk menggunakan ciri ini dalam menu Perkhidmatan(Alat) pilih arahan Pilihan(Pilihan) dan kemudian buka tab Umum(Umum), tekan butang Pilihan Dokumen Web(Pilihan Web) dan pergi ke tab Pemerhati(Pelayar), pilih atau kosongkan kotak semak Lumpuhkan komponen yang tidak disokong oleh penyemak imbas ini. Pengumpulan teg XML yang mentakrifkan unsur-unsur dokumen dipanggil skema ( skema).

Menyimpan dan membuka fail XML dalam Word 2003 boleh digunakan untuk menyepadukan dengan data perniagaan teras sesebuah perusahaan. Alat pemautan grafik dalam Excel memautkan skema XML yang ditentukan pengguna ke sel dalam hamparan Excel.

Mereka yang memiliki program hebat TextKit, atau sekurang-kurangnya mendengar tentangnya (yang tidak mendengar, segera) sepatutnya menyedari antara keupayaannya menghuraikan dokumen XML ke dalam mana-mana templat. Iaitu, jika kita mempunyai dokumen XML, kita boleh memasak tapak dengan mudah menggunakan TextKit.

Satu masalah kecil kekal, bagaimana untuk mendapatkan XML ini. Malah, untuk tujuan membuat laman web, anda boleh mengambil dokumen siap dari pelbagai program gabungan, seperti MixMarket atau Ozon. Tetapi tentang mereka pada masa yang lain. Saya akan menunjukkan kepada anda cara mendapatkan XML daripada jadual XLS biasa. Malah, ia adalah format MS Excel.

Memiliki pengetahuan ini akan membolehkan kami membuat tapak web menggunakan TextKit daripada mana-mana pangkalan data dalam Excel. Kami akan bekerja di pejabat 2007.

1) Muat turun alat tambah untuk bekerja dengan XML dari sini.

2) Kami pergi ke menu utama Excel, parameter.

3) Dalam menu yang terbuka, pilih "Add-on". Kami sedang mencari item "Pengurusan", pilih "Tambah Excel" dan klik "Pergi":

4) Dalam tetingkap yang terbuka, melalui "Semak imbas" pilih fail yang kami perlukan XmlTools.xla, tambahkannya pada panel dan aktifkannya dengan menandakan kotak di sebelahnya.

Secara lalai, fail ini disimpan dalam folder berikut pada pemacu keras anda:
\ Office Samples \ OfficeExcel2003XMLToolsAddin.

5) Jika anda melakukan semuanya dengan betul, maka dalam "Parameter" di bahagian "Add-ons" anda akan melihat sambungan yang dipasang:

Kini kami mengambil data kami untuk mencipta dokumen XML dan bekerja dengannya.

1) Klik pada butang pada panel. Kami memilih item pertama:

2) Dalam tetingkap yang muncul, pilih ya / tidak jika data kami mengandungi / tidak mengandungi pengepala, dalam kes saya ia ada, jadi saya menukar kotak semak kepada ya. Di sini kami menahan "pip" kecil untuk memilih sel dengan data:

3) Seret dan lepas untuk memilih data untuk mencipta dokumen XML. Kami memerah "pipka" dan klik OK.

Apabila membangunkan sistem pengurusan dokumen elektronik, adalah perlu untuk melaksanakan fungsi untuk mengeksport data dalam format yang popular. Khususnya, dalam format Microsoft Excel. Keperluan eksport adalah agak mudah - untuk mengeksport data dengan pemformatan minimum, i.e. tiada sel bercantum, permainan fon, dsb. Format eksport XML XLSX dan Excel.

Dalam kes ini, saya akan memberitahu anda tentang Excel XML.

Jadi, dalam mana-mana sistem yang beroperasi dengan data jadual, awal atau kemudian, terdapat keperluan untuk mengeksport data. Matlamat eksport adalah berbeza:

Melaksanakan dalam kelas satu set fungsi untuk menulis nilai sel dan siri adalah keperluan utama, yang membayangkan penciptaan fungsi untuk menulis nilai sel jenis yang ditentukan dan keupayaan untuk menulis siri siap. kepada fail.

Keupayaan untuk bekerja dengan jumlah data yang tidak terhad - sudah tentu, kelas eksport itu sendiri tidak akan dapat bertanggungjawab untuk jumlah yang direkodkan, tetapi ia mesti menyediakan fungsi untuk menulis data ke cakera dan membebaskan RAM untuk bahagian data seterusnya .

Sebagai tambahan kepada keperluan yang diterangkan, adalah perlu untuk menambah fungsi perkhidmatan:

  • Mendayakan AutoFilter
  • Memampatkan fail ke zip.

Perlaksanaan

Pertama sekali, semasa membuat kelas, saya menyemak nama fail akhir dan meminta bilangan lajur dan baris. Fail mesti mempunyai nama yang betul, dan folder tempat ia akan disimpan mesti wujud. Semuanya seperti biasa.
Format Excel XML membolehkan anda menyimpan maklumat tentang pengguna yang menciptanya dalam fail, oleh itu, apabila membuat pengepala, saya menulis nama organisasi, maklumat tentang pengguna dan tarikh fail itu dibuat.

Fungsi awam writeDocumentProperties ($ organisasi = null, $ pengguna = null) (fwrite ($ ini-> fail, " "); jika (! is_null ($ pengguna)) (fwrite ($ this-> file," ". $ pengguna-> penerangan.""); fwrite ($ ini-> fail," ". $ pengguna-> penerangan."");) $ dt = Datetime baharu (); $dt_string = $dt-> format (" Y-m-d \ TH: i: s \ Z "); fwrite ($ this-> file," ". $ dt_string.""); fwrite ($ ini-> fail," ". $ dt_string.""); jika (! is_null ($ organisasi)) fwrite ($ this-> file," ". $ organisasi-> nama.""); fwrite ($ ini-> fail," 12.00"); fwrite ($ ini-> fail,""); }
Benar, dalam fungsi ini entiti sistem aliran kerja digunakan - organisasi (organisasi) dan pengguna (pengguna). Menggantikan entiti ini dengan, katakan, nilai rentetan bukanlah masalah.

Bahagian tajuk yang paling menarik ialah maklumat gaya. Mereka dilaksanakan dengan sangat mudah dalam format Excel XML, jadi saya hanya mencipta jadual dengan gaya untuk rentetan, tarikh / masa dan hiperpautan.

Fungsi awam writeStyles () (fwrite ($ this-> file, ""); //default style fwrite($this->file, ""); // Gaya tarikh fwrite ($ this-> file,""); fwrite ($ ini-> fail,""); fwrite ($ ini-> fail,""); // Gaya pautan fwrite ($ ini-> fail,""); // Fwrite tebal ($ ini-> fail,""); fwrite ($ ini-> fail,""); }

Selesai kerja persediaan, anda boleh meneruskan untuk merakam data. Membuka lembaran kerja hanyalah beberapa teg, pada masa ini maklumat tentang bilangan lajur dan baris digunakan.

Fungsi awam openWorksheet () (fwrite ($ this-> file, " "); fwrite ($ this-> file, strtr ("

", array (" (col_count) "=> $ this-> colCount," (row_count) "=> $ this-> rowCount)));)
Tetapi menulis baris adalah proses yang lebih menarik. Kelas harus berfungsi dengan cepat dan memproses jumlah data yang tidak terhad, kerana rekod boleh menjadi seratus ribu atau bahkan sejuta! Jika anda mahukan kelajuan, gunakan memori, jika anda mahukan jumlah data yang tidak terhad, gunakan cakera. Untuk menyelaraskan keperluan, saya melaksanakan fungsi resetRow dan flushRow.
Yang pertama mengosongkan baris semasa, selepas itu ia boleh diisi dengan data semula, dan yang kedua menulis baris semasa ke fail terbuka ke cakera. Penggunaannya bersama membolehkan anda mencapai keseimbangan antara kelajuan dan jumlah memori yang digunakan.

Fungsi awam resetRow () ($ this-> currentRow = array ();) public function flushRow () (fwrite ($ this-> file, meletup ("", $ this-> currentRow)); unset ($ this-> currentRow);)
Setiap sel ditulis dengan fungsi yang sepadan dengan jenis data, iaitu appendCellxxx, di mana xxx ialah jenis data. Jenis data yang sah: Num, String, Real, DateTime, Date, Time, Link. Contoh fungsi untuk menulis nilai berangka:

Fungsi awam appendCellNum ($ nilai) ($ this-> currentRow = " ". nilai $.""; }
Selepas menulis semua data, ia kekal untuk menutup lembaran kerja dan buku kerja.

Permohonan

Penggunaan kelas yang diterangkan adalah berdasarkan mengeksport data menggunakan penyedia CArrayDataProvider. Walau bagaimanapun, dengan mengandaikan bahawa jumlah data yang dieksport mungkin menjadi sangat besar, iterator CDataProviderIterator khas telah digunakan, yang melelaran ke atas data yang dikembalikan sebanyak 100 rekod (anda boleh menentukan bilangan rekod yang berbeza).

Fungsi awam exportExcelXML ($ organisasi, $ pengguna, & $ nama fail) ($ ini -> _ pembekal = CArrayDataProvider baharu (/ * pertanyaan * /); Yii :: import ("ext.AlxdExportExcelXML.AlxdExportExcelXML"); $ export = baharu AlxdExportExcelXML ($ nama fail, kira ($ ini -> _ atribut), $ this -> _ provider-> getTotalItemCount () + 1); $ export-> openWriter (); $ export-> openWorkbook (); $ export-> writeDocumentProperties ($ organisasi, $ pengguna); $ export-> writeStyles (); $ export-> openWorksheet (); // baris tajuk $ export-> resetRow (); $ export-> openRow (true); foreach ($ this -> _ atribut sebagai $ code => $ format) $ export-> appendCellString ($ this -> _ objectref-> getAttributeLabel ($ code)); $ export-> closeRow (); $ export-> flushRow (); / / data rows $ rows = new CDataProviderIterator ($ this -> _ provider, 100); foreach ($ rows as $ row) ($ export-> resetRow (); $ export-> openRow (); foreach ($ this -> _ atribut sebagai $ kod => $ format) (tukar ($ format-> jenis) (huruf "Num": $ export-> appendCellNum ($ row [$ code]); / * jenis lain * / lalai: $ export- > tambah CellString (""); )) $ eksport-> closeRow (); $ eksport-> flushRow (); ) // tutup semua $ export-> closeWorksheet (); $ export-> closeWorkbook (); $ eksport-> closeWriter (); // zip fail $ eksport-> zip (); $ nama fail = $ eksport-> getZipFullFileName (); )
Dalam kes saya, setiap baris ditulis ke cakera, yang, buat masa ini, agak boleh diterima, tetapi pada masa hadapan, ia mungkin perlu diubah. Sebagai contoh, adalah bijak untuk menyimpan bukan setiap baris, tetapi setiap sepuluh atau bahkan seratus baris pada satu masa. Kemudian kelajuan eksport akan meningkat.

Kelajuan

Ngomong-ngomong, dari pengalaman saya sendiri, saya yakin betapa pentingnya untuk menganggap kemungkinan wujudnya sejumlah besar data dalam operasi kelompok, seperti eksport.
Pada mulanya, saya cuba mengeksport data menggunakan CActiveDataProvider, yang memerlukan kira-kira 240 saat apabila mengeksport 1000 rekod! Menukar pertanyaan untuk menggunakan CArrayDataProvider mengurangkan masa eksport 1000 rekod kepada 0.5 saat!
Khusus untuk penerbitan ini, saya mengukur penunjuk eksport.
Dieksport 1626 rekod daripada 9 atribut yang mewakili maklumat tentang insiden tertutup (lihat TSM).
Pandangan asal jadual yang dieksport
Hasilnya
(maaf, gambar hilang selepas disiarkan)
Penunjuk eksport
Saiz fail akhir: 1 312 269
Saiz fail termampat: 141 762
Masa berlalu: lebih kurang 0.5 sec

Sesiapa yang berminat boleh mendapatkan kod sumber kelas saya secara percuma. Hanya ingat untuk membetulkan fungsi. writeDocumentProperties untuk memisahkan organisasi dan entiti pengguna sistem aliran kerja, atau menggunakan entiti analog mereka dengan sifat yang sepadan.




Tapak bantuan komputer

© Hak Cipta 2021,
rzdoro.ru - Tapak bantuan komputer

  • Kategori
  • besi
  • Windows 10
  • Mengimbas
  • Windows 7
  • besi
  • Windows 10
  • Mengimbas
  • Windows 7
  • Lain-lain
  • Mengenai tapak
  • peta tapak
  • Kenalan
  • Mengiklankan