Traducerea unui tabel din excel în html. Conversia de la Excel la HTML: corectă, de înaltă calitate, simplă. lucruri de reținut atunci când convertiți fișiere Excel în HTML

În contact cu

colegi de clasa

ALEXEY Michurin

Conversia din Excel în HTML:

corect, eficient, simplu

Deci, sarcina noastră este să convertim corect un document din formatul xls în format HTML, ținând cont de formatarea documentului original și, în același timp, să facem cu „puțin sânge”

Formularea problemei. Sau care este problema?

Mulți webmasteri se confruntă adesea cu sarcina de a converti fișiere Microsoft Excel la alte formate. Adesea, acest lucru este plin de dificultăți, deoarece formatul xls, așa cum știe toată lumea, nu este documentat.

În unele cazuri, este posibil să salvați date Excel în formate documentate și apoi să le prelucrați. Cu toate acestea, această metodă de multe ori nu funcționează satisfăcător. Formatele simple, ușor de manevrat, nu sunt capabile să stocheze toate informațiile de formatare ale unui document, iar implementarea unui handler de format complex necesită mult timp.

Nu trebuie să mergi departe pentru un exemplu. Multe companii care au propriile pagini web și le actualizează periodic își fac afacerea folosind Excel. Webmasterul se confruntă cu o sarcină de conversie de fiecare dată când informațiile sunt actualizate pe server. Mai mult, sarcina poate fi complicată de următoarele aspecte:

În primul rând, există o schimbare de design. Lista de prețuri pregătită în Excel este de obicei concepută pentru imprimarea pe o imprimantă alb-negru. Lista de prețuri de pe site nu este. Cel puțin din acest motiv, un simplu „Salvare ca pagină web” nu este potrivit (nu vorbesc despre calitatea codului HTML obținut atunci când acesta este salvat).

În al doilea rând, la conversie, este necesar să se ia în considerare specificul Excel. De exemplu, mulți oameni care editează lista de prețuri utilizează extensiv comanda Format / Line / Hide. În acest caz, înălțimea liniei devine zero, iar linia pare să dispară de pe ecran și de pe imprimare. Este clar că astfel de linii nu ar trebui să ajungă nici pe site. Cu toate acestea, acestea sunt salvate excelent în alte formate și nu diferă de șirurile obișnuite, ne-ascunse. Acest lucru duce la doctrina „Salvare ca text și proces delimitat”, care nu dă rezultate satisfăcătoare.

În al treilea rând, lista de prețuri folosește adesea formatarea, care este esențială pentru păstrare. De exemplu, numele anumitor bunuri pot fi tăiate sau evidențiate în culori ca semn că aceste bunuri au fost și vor fi neapărat, dar acum nu mai sunt. Unele poziții pot fi cursive și așa mai departe. Toate aceste informații vor dispărea fără urmă dacă salvați lista de prețuri format simplu, să zicem, ca text delimitat de tab-uri.

Deci, sarcina noastră este să convertim corect documentul din formatul xls în formatul HTML, ținând cont de formatarea documentului original și, în același timp, să facem cu „puțin sânge”.

Propun să împart această sarcină în două. Primul este stocarea datelor într-un format simplu, care, cu toate acestea, va transporta toate informațiile de care avem nevoie despre marcajul documentului. Al doilea este procesarea acestui format și crearea unei pagini HTML.

Propun să rezolv prima sarcină (export) folosind instrumentele Excel. Aici de fapt nu avem de ales, formatul xls poate fi procesat doar de singura aplicație din lume care îl înțelege. Aceasta este dialectica.

Propun rezolvarea celei de-a doua probleme prin intermediul limbajului Perl. De ce? Deoarece acest limbaj este axat pe lucrul cu șiruri și rezolvarea problemelor precum a noastră (Perl - Extragere practică și limbaj de raportare - ceea ce aveți nevoie). Deoarece acest limbaj este cunoscut de o mulțime de programatori asociați cu dezvoltarea web (dacă nu sunteți unul dintre ei și intenționați să lucrați pe web, atunci vă recomand cu sinceritate să acordați atenție Perl). Deoarece această limbă este gratuită și disponibilă pentru orice utilizator de pe orice platformă. Și deoarece codul meu Perl poate fi apoi ușor modificat, forțându-l, de exemplu, să plaseze fiecare secțiune din lista de prețuri într-un fișier separat, să sorteze pozițiile prețurilor în moduri diferite, să urmărească actualizările și dinamica prețurilor, să furnizeze fiecare poziție cu HTML câmpuri de formular pentru comenzi on-line în magazinul web ... În cele din urmă, scriptul meu este ușor de transformat într-o aplicație CGI pentru administrarea unui server web.

O astfel de soluție mi se pare a fi cât mai flexibilă, funcțională și compactă, deoarece fiecare parte a problemei este rezolvată prin mijloacele cele mai potrivite pentru soluționarea ei.

Să începem de la un exemplu specific. Ca „cobai” ofer următoarea listă de prețuri (vezi Fig. 1).

După cum puteți vedea, combină toate elementele neplăcute menționate mai sus: atât formatare (fundal, linie, îndrăzneață), cât și linii ascunse (dacă priviți cu atenție, veți observa că a douăsprezecea linie urmează imediat a noua). Să avem grijă de ei.

Exportarea datelor din Excel

Să începem să rezolvăm prima problemă. Pentru a exporta date din Excel, vă propun o macro simplă pentru Visual Basic(numerele de linie sunt doar pentru comentarii):

1: Sub table2table ()

2: "

3: „macro care salvează selecția tabelului

4: „în text simplu cu semne de formatare

5: "

6: Cu ActiveWindow.RangeSelection

7: c1 = .Coloane.Coloană

8: c2 = .Coloane. Număr - 1 + c1

9: r1 = .Rows.Row

10: r2 = .Rows.Count - 1 + r1

11: Termină cu

12: Dacă (r1 - r2 = 0 Și c1 - c2 = 0) Atunci

13: MsgBox _

14: „ceva puțin evidențiat (pentru salvare), -)”, _

15: vbCritic, „mesaj macro”

16: End If

17: fileSaveName = Application.GetSaveAsFilename (_

18: InitialFileName: = "fișier", _

19: fileFilter: = "Fișiere text (* .txt), * .txt", _

20: Titlu: = "salvarea paginii în formatul nostru")

21: If fileSaveName = False Then

22: MsgBox _

23: "nu a fost selectat niciun fișier. Nu s-a făcut nicio acțiune.", _

24: vbCritic, „mesaj macro”

25: Altfel

28: Deschideți fișierSaveName pentru ieșire ca # 1

29: Pentru r = r1 la r2

30: l = CStr (Rows (r) .RowHeight)

31: Pentru c = c1 la c2

32: Cu celule (r, c)

33: l = l + sep + CStr (.Text) + _

37: Termină cu

38: În continuare

39: Tipărirea nr. 1, l

40: În continuare

41: Închideți numărul 1

42: End If

43: Sfârșitul Sub

Această macrocomandă salvează partea selectată din lista de prețuri în fișierul specificat. Macrocomanda poate fi adăugată la versiunea de lucru a listei de prețuri și făcută să o numească buton (în afara zonei de imprimare) sau poate fi stocată în fișier separat... Este foarte ușor să îl plasați într-un document: apelați editorul Visual Basic (meniu: „Instrumente -> Macro -> Editorul Visual Basic”; sau ), creați un nou modul (meniu: "Insert -> Module") și introduceți textul afișat aici (fără numere de linie). Acum puteți desena un buton (un instrument din panoul Formulare) și îi puteți atribui o macro.

Să aruncăm o privire rapidă asupra modului în care funcționează acest cod.

Prima linie este declararea macro-ului. După cum puteți vedea, l-am numit clar table2table, îl puteți numi mai sonor.

În rândurile 6-11, definim limitele părții selectate a documentului (la urma urmei, vom salva doar partea selectată). Acum c1 și c2 sunt prima și ultima coloană, iar r1 și r2 sunt prima și ultima linie a selecției.

Mai mult, în rândurile 12-16, verificăm dacă zona a fost selectată sau macrocomanda noastră trebuie să funcționeze cu o singură celulă. Acest lucru, desigur, nu puteți face, dar, de fapt, cel mai probabil, nu veți rula această macro, dar managerii care editează lista de prețuri, nu vă puteți baza întotdeauna pe acuratețea lor. Deci, dacă nu a fost selectat nimic, atunci macro-ul nostru va emite un avertisment (vezi Fig. 2).

Pe liniile 17 până la 20, invocăm dialogul Application.GetSaveAsFilename, astfel încât utilizatorul să poată selecta un nume de fișier (vezi Figura 3).

Din nou, puteți doar să dați un nume fix, dar cred că acest lucru este incomod chiar dacă utilizați această macro.

Liniile 21 până la 42 conțin o construcție if-then-else cu o verificare pentru a vedea dacă numele fișierului de salvat a fost specificat sau dacă utilizatorul a apăsat butonul Cancel din dialogul Salvare ca ...

Dacă utilizatorul a refuzat să salveze, atunci se afișează un mesaj corespunzător (rândurile 22-24), dacă este specificat numele fișierului, atunci începe cel mai interesant lucru - salvarea datelor.

Dar, înainte de a discuta procedura de salvare (rândurile 26 până la 41), să spunem câteva cuvinte despre formatul în care intenționăm să salvăm datele. Vă sugerez cel mai ușor format de procesat: text ASCII. Fiecare rând corespunde unui rând din tabel de salvat. Câmpurile sunt separate printr-un delimitator de caractere. Primul câmp este înălțimea liniei (aceste informații sunt necesare pentru a filtra liniile „ascunse”). Toate câmpurile ulterioare sunt conținutul celulelor, dar fiecare dintre aceste câmpuri conține mai multe subcâmpuri, separate prin propriile lor separatoare. Subcâmpurile transportă diverse informații despre o celulă: conținut, parametri de formatare.

Separatoarele noastre de câmp și subcâmp sunt setate prin coduri ASCII în liniile 26 și respectiv 27. Puteți alege separatoare mai convenabile. De exemplu, dacă sunteți sigur că datele dvs. nu conțin niciodată caracterul „:”, îl puteți lua ca separator sau subdiviziune.

Să parcurgem liniile (linia 29).

Calculați înălțimea pentru fiecare linie. În același timp, începem să pregătim o linie pentru salvare într-un fișier din variabila l (linia 30 a listării).

Într-o buclă (linia din Listarea 31) peste celulele rândului tabelului salvat, adăugați la rândul l toate informațiile despre celulele care ne interesează, furnizându-i delimitatori.

Ce proprietăți ale celulei salvăm?

Primul pas este textul celulei. Rețineți că folosim proprietatea .Text, nu proprietatea .Value. Nu este o coincidență. Proprietatea .Value returnează conținutul adevărat al celulei, proprietatea .Text returnează textul care este afișat pe monitor și tipărit. Este posibil ca aceste două valori să nu coincidă (și, de obicei, nu se potrivesc), deoarece valorile sunt afișate pe ecran conform formatului de celulă specificat (de exemplu, numerele sunt afișate cu un număr specificat de zecimale).

Proprietatea .MergeCells spune dacă celula face parte dintr-un grup de celule îmbinate.

Proprietatea .Font.Bold reflectă îndrăzneala textului din celulă.

Proprietatea .Font.Strikethrough spune dacă textul a fost stilat ca strikethrough.

Pentru exemplul nostru, probabil că nu vom avea nevoie de altceva. Cu toate acestea, nu pot să nu menționez o serie de proprietăți utile care vă pot fi utile. Numele acestor proprietăți sunt destul de elocvente și nu voi comenta asupra lor, mă voi limita la enumerarea:

  • .Font.Nume
  • .Font.FontStyle
  • .Marimea fontului
  • .Font.Subliniază
  • .Font.ColorIndex
  • .Font.Italic
  • .Aliniere orizontala
  • .Aliniere verticală
  • .ColorIndex
  • .Model

Rețineți că toate proprietățile sunt exprimate în mod explicit la tip de șir de funcția CStr (liniile 33-36). Aceasta este o procedură foarte utilă, care vă salvează pentru totdeauna durerile de cap legate de conversiile de tip.

Aici trebuie făcută o avertizare importantă. Ideea este că funcția CStr nu poate gestiona valori nedefinite. Dacă astfel se va găsi în documentele dvs., atunci în loc de CStr puteți utiliza propria funcție pentru conversia valorilor în format text. De exemplu safeCStr:

1: Funcția safeCStr (p Ca variantă) Ca șir
2: Dacă IsNull (p), atunci safeCStr = "" Altfel safeCStr = CStr (p)
3: Funcția de sfârșit

Trebuie să menționez că eu însumi nu am întâlnit niciodată astfel de situații, dar consultantul științific și tehnic al revistei a găsit cu ușurință o listă de prețuri pe Internet, în unele celule din care proprietatea Font.Bold nu a fost definită. Cred că astfel de documente pot rezulta din exportul de date din alte aplicații. De exemplu, produsele 1C pot exporta date în Excel. Pe scurt, o astfel de situație este posibilă. - Nota autorului.

Deci, selectați zona salvată (în exemplul nostru, acestea sunt primele trei coloane ale tabelului, liniile 4 - 21), faceți clic pe butonul pe care l-ați creat, selectați numele fișierului și fișierul este salvat. Ce să faci cu el în continuare?

Generarea unei pagini HTML din datele exportate

Puteți face orice cu acest fișier, deoarece formatul său este pe deplin cunoscut de noi (este bine să știm asta). Voi da un exemplu de generare a unei pagini HTML.

După cum am spus, sugerez un script Perl:

1: #! / Usr / bin / perl -w

3: #use strict;

5: # my ($ TRUE, $ FALSE) = ("Adevărat", "Fals");

6: my ($ TRUE, $ FALSE) = ("True", "False");

8: sub qtnum (

9: $ t meu = tura;

10: $ t = ~ s |, (\ d +) |, $1|;

11: returnează $ t;

12: }

14: sub qtstring (

15: $ t meu = tura;

16: $ t = ~ s / \ & / \ & / g;

17: $ t = ~ s / \ "/ \" / g;

18: $ t = ~ s / \> / \> / g;

19: $ t = ~ s / \

20: returnează $ t;

21: }

23: tipărire<<"TEXT";

24:

25:

26: lista de prețuri a unei anumite companii

27:

32:

33:

34:

35:

36:

37:

38:

39:

40:

41:

42:

43:

44:

45:

46:

47:

48:

49:

50: TEXT

52: în timp ce (<>) {

53: s / [\ x0A \ x0D] + $ //;

54: my @ f = split / \ x09 /;

55: $ lh = shift @f meu;

56: my ($ nume, $ usd, $ rub) = map () @f;

57: if ($ lh) (

58: if ($ nume-> eq $ ADEVĂRAT) (# antet secțiune de procesare

59: tipăriți "

\ n ";

62 :) else (# procesează o linie obișnuită

63: tipărire<<"TEXT" .

64:

65: onMouseOver = "this.className =" al ";"

66: onMouseOut = "this.className =" ";">

\ n \ n \ n ";

80: }

81: tipărire<<"TEXT";

82:

83:

84: TEXT

85 :) altceva (

86: avertizează "linia ascunsă:". $ Nume ->. "\ N";

87: }

88: }

90: tipărire<<"TEXT";

91:

lista de prețuri a unei anumite companii
Numele produsului Preț
cu freca.
" .

60: $ nume->.

61: "

67: TEXT

68: ($ nume-> eq $ ADEVĂRAT? " ":"") .

69: qtstring ($ nume->).

70: ($ nume-> eq $ ADEVĂRAT? "":"") .

71: qq |

| .

72: ($ usd-> eq 

$ ADEVĂRAT? " ":"") .

73: qtnum ($ usd->).

74: ($ usd-> eq $ ADEVĂRAT? "":"") .

75: qq |

| .

76: ($ rub-> eq 

$ ADEVĂRAT? " ":"") .

77: qtnum ($ rub->).

78: ($ rub-> eq $ ADEVĂRAT? "":"") .

79: "

92:

93:

94: TEXT

Scriptul preia intrarea dintr-un fișier specificat ca parametru al liniei de comandă sau din intrarea standard și tipărește codul HTML în ieșirea standard. Adică, îl puteți rula astfel:

perl file2html.pl file.txt> file.html

sau, de exemplu, așa:

cat file.txt | perl file2html.pl> file.html

Să vedem cum funcționează acest script (presupun că cititorul este puțin familiarizat cu Perl).

Prima linie este linia magică standard a oricărui script UNIX. Utilizatorii de Windows îl pot ignora. Al treilea rând conține afirmația strictă utilizată comentată. Acesta vă va fi util numai la depanare.

În rândurile 5 și 6, vom defini variabilele $ TRUE și $ FALSE, care vor conține valorile adevărate și false returnate de Excel. Faptul este că Excel rus folosește cuvinte rusești, europeană - engleză. Comentează linia care ți se potrivește și comentează cea suplimentară.

Procedura qtnum (liniile 8-12) adaugă etichete la înregistrarea numerelor, transformând „3.14” în „3, 14". Adică, cenții și banii vor fi afișați într-un font mai mic. Aceasta este o măsură pur cosmetică.

Rutina qtstring (liniile 13 - 21) citează caractere „nesigure”: & (și), „(ghilimele duble),< (больше), >(mai mica). Aceasta, după cum înțelegeți, este o măsură obligatorie.

Liniile 23 până la 50 imprimă antetul documentului HTML.

În bucla while (liniile 52 până la 88), citim fișierul de intrare linie cu linie, îl convertim într-un document HTML și îl scriem în stdout.

În linia 53, caracterul (caracterele) de sfârșit de linie este decupat de la următoarea linie de citire. Nu folosesc funcțiile standard Perl chop și chomp, deoarece fișierul procesat este creat sub Windows, iar handler-ul (scriptul nostru Perl) poate funcționa și sub UNIX. Fișierul poate fi transferat în moduri foarte exotice. De exemplu, mulți oameni vor dori probabil să-mi modifice puțin codul și să-l transforme într-o aplicație CGI pentru administrarea serverului lor nativ. Prin urmare, nu mă bazez pe funcțiile standard, dar scriu explicit că trebuie să elimin toate caracterele \ x0A și \ x0D de la sfârșitul liniei.

Primul câmp, înălțimea liniei, este stocat în variabila $ lh (linia 55). Toate celelalte câmpuri sunt împărțite în subcâmpuri. Drept urmare, variabilelor $ nume, $ usd, $ rub sunt atribuite indicatori matricelor care conțin toate informațiile necesare despre conținutul și formatarea celulei corespunzătoare. $ nume - celulă cu numele produsului, $ usd - celulă cu prețul în dolari, $ rub - celulă cu prețul în ruble. Acest lucru se face cu o singură linie 56.

Dacă înălțimea liniei nu este zero, atunci executăm blocul de la 58 la 84 de linii. În caz contrar, lansăm un avertisment către fluxul de erori standard stderr că un șir ascuns a fost detectat și ignorat (linia 86).

Procesarea rândurilor tabelelor poate părea complicată doar la prima vedere.

În primul rând, ne dăm seama cu ce avem de-a face: în linia 58 verificăm adevărul proprietății MergeCells a celulei cu numele produsului. Dacă această celulă este îmbinată, atunci acesta este un antet de secțiune, atunci codul care generează antetul este executat (liniile 59 până la 61).

Dacă se dovedește că avem de-a face cu o linie regulată, atunci blocul else este executat (liniile 63 până la 79). Aici se formează un rând al unui tabel HTML, în care sunt inserate elemente de formatare suplimentare (pentru acele rânduri de tabel, acolo unde este necesar).

Rețineți că am creat un truc DHTML de bază în documentul nostru. Rândul pe care se află indicatorul mouse-ului este întotdeauna evidențiat în tabel. Acest lucru face ca tabelul să fie mai ușor de citit. Sunt de acord că este dificil să se realizeze un astfel de efect folosind Excel (prin salvarea unui document ca pagină web).

Liniile 90-94 afișează etichetele finale ale documentului. Vă rugăm să rețineți că trebuie să existe o linie goală la sfârșitul fișierului cu programul. În caz contrar, ultimul cuvânt („TEXT”) (linia 94) nu va fi procesat corect de către interpretul Perl.

Consultați figura (p. 82) pentru ieșire.

De acord, a fost ceva de luptat!

GANDACI. Ce mai poți adăuga?

Nu mă îndoiesc că, deși exemplele mele sunt pe deplin funcționale, puțini oameni le vor folosi fără cea mai mică modificare. Vreau să arunc câteva gânduri despre ce poate fi îmbunătățit în aceste scripturi, astfel încât, atunci când le modificați, să nu faceți lucrări inutile, ci să ucideți cât mai multe păsări simultan.

Script în Visual Basic

Aici va trebui cel mai probabil să schimbați setul de parametri ai celulei salvate. Ofer o listă cu cele mai utile în discuția acestui scenariu. Dacă aveți nevoie de ceva exotic, consultați documentația Microsoft, Range Object Properties.

Probabil, mulți vor considera un defect faptul că macro-ul înlocuiește definitiv fișierele existente (dacă specificați un fișier existent de salvat). Acest lucru, după cum vă puteți imagina, este ușor de remediat.

Probabil, pentru documentele reale va fi ușor să se formuleze condițiile în care macro-ul va determina el însuși zona listei de prețuri (sau a altui document) care trebuie salvată. Apoi, acest proces poate fi automatizat. Soluția mea (păstrarea zonei selectate) este mai versatilă decât convenabilă.

În cele din urmă, cititorul poate întreba pe bună dreptate de ce o macrocomandă pentru Excel salvează rândurile ascunse, deoarece acestea pot fi eliminate deja în etapa de export? Pălăriile către atenția cititorului (sperând în secret un gest reciproc către discernământul meu). Păstrarea liniilor ascunse nu este deloc necesară, sunt obișnuit să salvăm totul. Cauze? Este posibil să aveți în continuare nevoie de linii ascunse. Sau poate doriți să știți exact care linii au fost ignorate (scriptul meu Perl, după cum vă amintiți, raportează fiecare linie ascunsă). În plus, informațiile despre înălțimea liniei pot fi un criteriu pentru identificarea antetelor ... deși, desigur, puteți modifica codul VB ușor și nu păstrați liniile ascunse.

Script Perl

Desigur, cel mai probabil veți schimba întregul cod HTML (și aceasta este cea mai mare parte a scriptului). Desigur, va trebui să schimbați numărul de coloane, antetul, multe vor elimina liniile mele de separare goale din codul HTML, vor adăuga tabele imbricate, vor schimba funcțiile DHTML, vor adăuga tabele CSS ... Dar acesta nu este cel mai important și nu o schimbare fundamentală.

Cel mai probabil va trebui să „învățați” acest script să împartă documente mari în secțiuni și să salvați aceste secțiuni în fișiere diferite, deoarece lista de prețuri a unei companii foarte medii în format HTML poate extrage sute de kilobyți. Nu fiecare rătăcitor web va aștepta ca un astfel de document să se termine descărcarea. Poate doriți să adăugați sortare (dacă articolele din lista de prețuri tipărită și din lista de prețuri web trebuie să apară într-o altă ordine).

Fără îndoială, va fi utilă funcția de a compara prețul actual cu cel anterior, care va adăuga informații despre actualizări și dinamica prețurilor.

Vă sfătuiesc să organizați astfel de proceduri (care nu au legătură directă cu aspectul HTML) sub formă de programe sau module separate. Apropo, o parte a lucrării privind aspectul HTML poate fi încredințată mecanismului SSI și permite scriptului să colecteze documentul SHTML. Un set de instrumente simple este întotdeauna mai convenabil, mai flexibil și mai ușor de gestionat decât unul universal. Stai departe de grebla pe care merg creatorii telefonului cu microunde și ale periuței de dinți TV.

Lista de sfaturi și sugestii este nesfârșită, dar cred că v-am trezit deja imaginația și atunci puteți face față fără mine. Adaptarea exemplului dat aici la condițiile dvs. specifice poate dura câteva ore de muncă. Dar atunci veți fi răsplătiți cu generozitate, deoarece veți face toate actualizările ulterioare de informații de pe serverul dvs. web în doar câteva atingeri ale tastaturii și mouse-ului!


În contact cu

Dacă ați creat o foaie de calcul Excel excelentă și doriți acum să o publicați ca o pagină web, atunci cel mai simplu mod de a face acest lucru este să o exportați într-un fișier HTML vechi bun. În acest articol, vom analiza mai multe moduri de a converti datele din Excel în HTML, de a determina avantajele și dezavantajele fiecărei metode și de a efectua această conversie pas cu pas împreună cu dvs.

Convertiți tabelele Excel în HTML folosind instrumentul Salvare ca pagină web

Să presupunem că ați creat un raport multifuncțional în Excel și acum doriți să exportați toate aceste informații, împreună cu o diagramă și un tabel pivot, pe site-ul companiei, astfel încât colegii să le poată vedea online prin intermediul browserelor web fără a deschide Excel.

Urmați acești pași pentru a converti datele Excel în HTML. Aceste instrucțiuni sunt valabile pentru Excel 2013, 2010 și 2007.


Sfat: Dacă este prima dată când convertiți un registru de lucru Excel într-un fișier HTML, este înțelept să salvați mai întâi pagina web pe hard disk, astfel încât să puteți face modificări, dacă este necesar, înainte de a publica pagina pe Internet sau într-o rețea locală.

Cometariu: HTML generat de Excel nu este foarte curat! Va fi grozav când, după transformarea unui tabel mare cu un design complex, îl deschideți în orice editor HTML și curățați codul înainte de publicare. Ca urmare, pagina de pe site se va încărca considerabil mai repede.

5 lucruri de reținut atunci când convertiți fișiere Excel în HTML

Atunci când utilizați instrumentul Salvare ca pagină web, este important să înțelegeți cum funcționează principalele sale opțiuni pentru a evita să faceți cele mai frecvente greșeli și să evitați cele mai frecvente mesaje de eroare. În această secțiune, veți găsi o prezentare rapidă a opțiunilor care trebuie luate în considerare la conversia fișierelor Excel în HTML.

1. Acceptă fișiere și hyperlinkuri

După cum știți, paginile web conțin adesea imagini și alte fișiere suport, precum și hyperlinkuri către alte site-uri web. Prin conversia unui fișier Excel într-o pagină web, aplicația colectează automat fișierele și hyperlinkurile asociate pentru dvs. și le salvează într-un subdosar.

Când salvați fișiere suport precum diagrame și texturi de fundal pe același server web, Excel creează toate linkurile relativ... Un link relativ (URL) indică un fișier din același site web; specifică numele fișierului sau folderul rădăcină în locul numelui complet al site-ului (de exemplu, href = ”/ images / 001.png”). Când ștergeți orice element stocat ca o legătură relativă, Microsoft Excel elimină automat fișierul legat din folderul auxiliar.

Deci, regula principală este păstrați-vă întotdeauna pagina web și fișierele de sprijin într-un singur loc altfel pagina web nu se va afișa corect. Dacă mutați sau copiați pagina web într-o altă locație, asigurați-vă că copiați subdosarul în aceeași locație, altfel legăturile vor fi incorecte. Dacă salvați din nou pagina web într-o altă locație, Microsoft Excel va copia automat subdosarul de lângă acesta.

Dacă salvați pagini web în locații diferite sau dacă fișierul Excel conține hyperlinkuri către site-uri web externe, atunci în astfel de cazuri, absolut link-uri. Linkurile absolute conțin calea completă către un fișier sau o pagină web care poate fi accesată de oriunde, de exemplu: www.domeniul dvs. / secțiunea / pagina.htm.

2. Efectuarea modificărilor și salvarea paginii web

În teorie, puteți salva registrul de lucru Excel ca pagină web, apoi puteți deschide pagina web rezultată în Excel, puteți face modificări și puteți salva din nou fișierul. Cu toate acestea, în acest caz, unele caracteristici Excel nu vor fi disponibile. De exemplu, orice diagrame conținute în registrul dvs. de lucru se vor transforma în desene independente și nu le veți putea modifica în Excel, așa cum ați făcut înainte.

Prin urmare, cel mai bun mod este să actualizați mai întâi registrul de lucru Excel original cu unele modificări, apoi să îl salvați ca registru de lucru Excel (.xlsx) și apoi să îl convertiți înapoi la o pagină web.

3. Reeditarea automată a unei pagini web

Dacă ați bifat caseta de lângă parametru Publicare automată(Reimprimare automată) în caseta de dialog Publicați ca pagină web(Publicați o pagină web) pe care am menționat-o mai devreme în acest articol, apoi pagina dvs. web se va reîmprospăta automat de fiecare dată când salvați registrul de lucru. Această caracteristică este foarte utilă și vă permite să păstrați întotdeauna o copie online actualizată a foii de calcul Excel.

Dacă activați parametrul Publicare automată(Reimprimare automată), apoi de fiecare dată când salvați un registru de lucru, va apărea un mesaj care vă solicită să confirmați dacă doriți să activați sau să dezactivați reimprimarea automată. Dacă doriți ca foaia Excel să se publice automat, selectați Permite ...(Porniți ...) și faceți clic pe Bine.

Cu toate acestea, pot exista circumstanțe în care nu doriți să publicați automat foaia Excel sau elementele acesteia, de exemplu, dacă fișierul conține informații confidențiale sau a fost modificat de cineva care nu este o persoană de încredere. În acest caz, puteți dezactiva temporar sau definitiv publicarea automată.

Pentru a dezactiva temporar republicarea automată, selectați prima dintre opțiunile sugerate în postarea de mai sus - Dezactivați caracteristica AutoRepublish în timp ce acest registru de lucru este deschis(Dezactivați caracteristica Reimprimare automată când această carte este deschisă). Aceasta va dezactiva publicarea automată pentru sesiunea Excel curentă, dar data viitoare când deschideți registrul de lucru, va fi activată din nou.

Pentru a dezactiva reimprimarea automată permanent pentru toate elementele selectate, deschideți un registru de lucru Excel, accesați caseta de dialog Publicați ca pagină web(Publicați pagina web) și faceți clic pe Publica(Post). În capitol Articole de publicat(Elemente publicate) în listă Alege(Selectați) selectați elementul pe care nu doriți să îl publicați și faceți clic pe buton Elimina(Șterge).

4. Funcții Excel neacceptate pe paginile web

Din păcate, unele caracteristici Excel foarte utile și populare devin indisponibile atunci când convertiți foile Excel în HTML:

  • Aveaformatarea cuvintelor nu este acceptat la salvarea foii Excel ca Pagina Web cu un singur fișier(Pagina web din acest fișier), deci asigurați-vă că o salvați ca Pagină web(Pagină web). Diagramele cu bare, barele de culori și seturile de pictograme nu sunt acceptate de ambele formate de pagină web.
  • Rotit sau vetext vertical nu este acceptat la exportarea datelor din Excel în formatul paginii web. Orice text rotit sau vertical din registrul dvs. de lucru va fi convertit în text orizontal.

5. Cele mai frecvente dificultăți întâmpinate la convertirea fișierelor Excel în HTML

Când convertiți un registru de lucru Excel într-o pagină web, puteți întâmpina următoarele dificultăți cunoscute.

Uneori vine un manager și spune: - Vreau să văd acest tabel pe site.
Și pleacă.
Apar două căi standard:
- fie printr-un anumit panou de administrare din editor, sculptați un tabel și umpleți-l cu valori;
- fie cu mânere direct în html și, de asemenea, completați cu valori.
Și este în regulă dacă există celule 3x5, dar dacă sunt mai multe.

Confruntat cu acest lucru în urmă cu câțiva ani, am descoperit o metodă bazată pe utilizarea Windows Live Writer (software pentru scrierea și trimiterea de postări către unele platforme de blog).

E simplu. Lipiți tabelul copiat în WLW cu o pastă specială, păstrând formatul

Apoi mergeți la fila de jos „Sursă” în WLW și copiați din câmp tot codul uriaș

Se dovedește așa sau aproape la fel ca în original. Timpul durează câteva secunde, cu excepția costurilor unice legate de atașarea WLW la un anumit cont de blog.
Un exemplu este aici codepen

Ca rezultat, obținem o singură pagină cu 320 de rânduri de text.

Acolo trebuie să găsești tot ce trebuie să folosești ...

De exemplu, să luăm o foaie de calcul Excel formată din 4 coloane și 12 rânduri.
Coloana A - numerotarea articolelor în ordine crescătoare a liniilor de articole
Coloana B - numărul de articole
Coloana C - prețul unui articol
Coloana D - suma costului articolelor dintr-o singură linie ca produs al prețului articolului în funcție de cantitatea acestora
Coloana D celula D12 - suma costului tuturor articolelor

Este de la sine înțeles că tabelul în sine în formă excela fişier nu poate fi cazatîn materialele site-ului din mai multe motive. Pentru plasarea sa, publicarea sub forma unei reprezentări textuale a datelor, este necesară conversie în HTML format compatibil.

Mai întâi adăugați înainte de masă încă o linie, evidențiat cadru roșu .
Apoi, înainte de fiecare coloană a tabelului, adăugați încă o coloană, adăugați încă 4 coloane, selectate rame verzi .

Ca rezultat, obținem un tabel format din 8 coloane și 13 rânduri.

În celulă A1 sub formă de text pe care îl scriem HTML etichetă de masă


În celulele domeniului A2-A11înainte de fiecare celulă coloană B sub formă de text, scrieți deschiderea HTML etichete de rând și celulă
În celulă I14 ca text, scrieți închiderea HTML etichetă de masă

În intervalul de celule C2-C11 , E2-E11 , G2-G11 înainte de fiecare celulă coloană D , Fși H sub formă de text, scrieți închiderea și deschiderea HTML etichete de celule

În celulele domeniului I2-I13 după fiecare celulă coloană H sub formă de text, scrieți închiderea HTML etichete de celule și rânduri

Mai departe în celule A12și A13 ca text, scrieți deschiderea HTML etichetă de linie și deschidere HTML etichetă de celulă cu atribut colspan concatenând în șiruri 12 și 13 coloane B , Dși Fîntr-o singură celulă

Drept urmare, vom primi un tabel completat cu datele inițiale excela format și Etichete HTML ca text.

Mai departe în Editor Excel, selectați tabelul din interval A1-I13, în meniul programului, selectați comanda "Salvează ca"și salvați selecția ca fisier text(de exemplu - tabltxt.txt), codarea nu contează, puteți salva ca și în codificare UTF-8și în codificare Ms-DOS... Excel va afișa o fereastră de avertizare:

Apăsați tasta "BINE"și Excel va afișa din nou o fereastră de avertizare:

Apăsați tasta "DA" iar fragmentul selectat va fi salvat ca fișier text tabltxt.txt

Mai mult, lucrările ulterioare privind conversia sunt transferate în editorul HTML, în principiu, orice altceva se poate face într-un mod simplu editor de text, dar opțiune cu editor HTML mai preferabil.

Deschiderea fișierului tabltxt.txtîn orice editor de text, selectați tot conținutul ca text și lipiți-l în HTML editor în Mod HTML... Să obținem următorul text sursă HTML al tabelului. De asemenea, puteți alege selecția unui fișier salvat din Excel. Singura diferență este că, în funcție de codificarea fișierului salvat, acesta poate conține „artefacte” sub formă de caractere suplimentare așa cum puteți vedea în captura de ecran din celule ( " " ).

Apoi, ștergem totul „artefacte” dacă există, toate spațiile. Scriem și noi Stil CSS pentru celulele de masă: td (padding: 1px 12px; text-align: center;) Drept urmare, vom obține textul HTML original al tabelului în format HTML. (captura de ecran este afișată așa cum este fără formatare HTML structurală ca și cum ar arăta într-un editor de text)... În această formă, textul sursă al tabelului este potrivit pentru a fi utilizat ca Tabelele HTML date pentru publicare în material, deoarece este un format pur HTML.

După salvarea tabelului ca fișier HTML și vizualizarea acestuia în browser, obținem următoarea afișare a tabelului convertită din format excel în format HTML.

Semnificația tuturor acțiunilor de mai sus se reduce la un singur lucru:

1 . Formați înainte de fiecare linie de tabel Excel, linie HTML și începeți Celule HTML.
2 . Formați între coloanele tabelului Excel, sfârșitul unuia și începutul altei celule HTML.
3 . Generați după fiecare rând al tabelului Excel, sfârșitul celulelor și liniilor HTML.
4 . Formați la începutul și la sfârșitul tabelului Excel, începutul și sfârșitul tabelului HTML ca etichetă de tabel.

Este de la sine înțeles că pentru o afișare mai prezentabilă a datelor din tabel, trebuie să scrieți clasele CSS în Etichete HTML rânduri și celule ale tabelului. De exemplu, cu atribute de indentare, culoarea și stilul fontului, chenarele și alt design. Dar acesta este un subiect separat care nu este luat în considerare în acest material ...