Μετάφραση πίνακα από excel σε html. Μετατροπή από Excel σε HTML: σωστή, υψηλής ποιότητας, απλή. πράγματα που πρέπει να λάβετε υπόψη κατά τη μετατροπή αρχείων Excel σε HTML

Σε επαφή με

συμμαθητές

ΑΛΕΞΕ Μιχουρίν

Μετατροπή από Excel σε HTML:

σωστά, αποτελεσματικά, απλά

Έτσι, το καθήκον μας είναι να μετατρέψουμε σωστά ένα έγγραφο από μορφή xls σε μορφή HTML, λαμβάνοντας υπόψη τη μορφοποίηση του αρχικού εγγράφου και ταυτόχρονα να κάνουμε με "λίγο αίμα"

Διατύπωση του προβλήματος. Or ποιο είναι το πρόβλημα;

Πολλοί webmasters αντιμετωπίζουν συχνά το έργο της μετατροπής αρχείων Microsoft Excelσε άλλες μορφές. Συχνά αυτό είναι γεμάτο δυσκολίες, καθώς η μορφή xls, όπως όλοι γνωρίζουν πολύ καλά, δεν είναι τεκμηριωμένη.

Σε ορισμένες περιπτώσεις, είναι δυνατό να αποθηκεύσετε δεδομένα Excel σε τεκμηριωμένες μορφές και στη συνέχεια να τα επεξεργαστείτε. Ωστόσο, αυτή η μέθοδος συχνά δεν λειτουργεί ικανοποιητικά. Οι απλές, εύχρηστες μορφές δεν μπορούν να αποθηκεύσουν όλες τις πληροφορίες μορφοποίησης ενός εγγράφου και η εφαρμογή ενός σύνθετου προγράμματος επεξεργασίας μορφής είναι άσκοπα χρονοβόρα.

Δεν χρειάζεται να πάτε μακριά για παράδειγμα. Πολλές επιχειρήσεις που έχουν τις δικές τους ιστοσελίδες και τις ενημερώνουν περιοδικά κάνουν τις δραστηριότητές τους χρησιμοποιώντας το Excel. Ο webmaster αντιμετωπίζει μια εργασία μετατροπής κάθε φορά που ενημερώνονται πληροφορίες στον διακομιστή. Επιπλέον, η εργασία μπορεί να περιπλέκεται από τις ακόλουθες πτυχές:

Πρώτον, υπάρχει μια αλλαγή σχεδιασμού. Ο τιμοκατάλογος που ετοιμάζεται στο Excel είναι συνήθως σχεδιασμένος για εκτύπωση σε ασπρόμαυρο εκτυπωτή. Ο τιμοκατάλογος στον ιστότοπο δεν είναι. Τουλάχιστον για αυτόν τον λόγο, ένα απλό "Αποθήκευση ως ιστοσελίδα" δεν είναι κατάλληλο (είμαι ήδη σιωπηλός για την ποιότητα του κώδικα HTML που λαμβάνεται με μια τέτοια εξοικονόμηση).

Δεύτερον, κατά τη μετατροπή, είναι απαραίτητο να ληφθούν υπόψη οι ιδιαιτερότητες του Excel. Για παράδειγμα, πολλοί άνθρωποι που επεξεργάζονται τον τιμοκατάλογο χρησιμοποιούν εκτενώς την εντολή Μορφοποίηση / Γραμμή / Απόκρυψη. Σε αυτήν την περίπτωση, το ύψος της γραμμής γίνεται μηδέν και η γραμμή φαίνεται να εξαφανίζεται από την οθόνη και στην εκτύπωση. Είναι σαφές ότι τέτοιες γραμμές δεν πρέπει να φτάνουν ούτε στον ιστότοπο. Ωστόσο, αποθηκεύονται άριστα σε άλλες μορφές και δεν διαφέρουν από τις συνηθισμένες, μη κρυφές χορδές. Αυτό οδηγεί στο δόγμα "Αποθήκευση ως οριοθετημένο κείμενο και διαδικασία" που δεν δίνει ικανοποιητικά αποτελέσματα.

Τρίτον, ο τιμοκατάλογος χρησιμοποιεί συχνά μορφοποίηση, η οποία είναι ζωτικής σημασίας για διατήρηση. Για παράδειγμα, τα ονόματα ορισμένων προϊόντων μπορεί να διαγράφονται ή να επισημαίνονται με χρώμα ως ένδειξη ότι αυτά τα αγαθά ήταν και θα είναι απαραίτητα, αλλά τώρα δεν είναι. Ορισμένες θέσεις μπορεί να είναι πλάγιες και ούτω καθεξής. Όλες αυτές οι πληροφορίες εξαφανίζονται χωρίς ίχνος εάν επαναφέρετε τον τιμοκατάλογο σε απλή μορφή, ας πούμε, ως κείμενο οριοθετημένο με καρτέλα.

Έτσι, το καθήκον μας είναι να μετατρέψουμε σωστά το έγγραφο από τη μορφή xls σε μορφή HTML, λαμβάνοντας υπόψη τη μορφοποίηση του αρχικού εγγράφου, και ταυτόχρονα να κάνουμε με "λίγο αίμα".

Προτείνω να χωρίσω αυτό το έργο στα δύο. Το πρώτο είναι η αποθήκευση δεδομένων σε απλή μορφή, η οποία, ωστόσο, θα φέρει όλες τις πληροφορίες που χρειαζόμαστε για τη σήμανση του εγγράφου. Το δεύτερο είναι η επεξεργασία αυτής της μορφής και η δημιουργία μιας σελίδας HTML.

Προτείνω να λύσετε την πρώτη εργασία (εξαγωγή) χρησιμοποιώντας εργαλεία Excel. Εδώ στην πραγματικότητα δεν έχουμε άλλη επιλογή, η μορφή xls μπορεί να υποβληθεί σε επεξεργασία μόνο από τη μόνη εφαρμογή στον κόσμο που την καταλαβαίνει. Αυτό είναι διαλεκτικό.

Προτείνω την επίλυση του δεύτερου προβλήματος μέσω της γλώσσας Perl. Γιατί; Επειδή αυτή η γλώσσα επικεντρώνεται στην εργασία με χορδές και στην επίλυση προβλημάτων όπως τα δικά μας (Perl - Practical Extraction and Report Language - ό, τι χρειάζεστε). Επειδή αυτή η γλώσσα είναι γνωστή από πολλούς προγραμματιστές που σχετίζονται με την ανάπτυξη ιστού (εάν δεν είστε ένας από αυτούς και σχεδιάζετε να εργαστείτε στο διαδίκτυο, τότε συνιστώ ειλικρινά να δώσετε προσοχή στο Perl). Επειδή αυτή η γλώσσα είναι δωρεάν και διαθέσιμη σε οποιονδήποτε χρήστη σε οποιαδήποτε πλατφόρμα. Και επειδή ο κώδικας Perl μου μπορεί στη συνέχεια να τροποποιηθεί εύκολα, αναγκάζοντάς τον, για παράδειγμα, να τοποθετήσει κάθε τμήμα του τιμοκαταλόγου σε ξεχωριστό αρχείο, να ταξινομήσει τις θέσεις των τιμών με διαφορετικούς τρόπους, να παρακολουθήσει τις ενημερώσεις και τη δυναμική των τιμών, να παρέχει σε κάθε θέση HTML πεδία φόρμας για παραγγελίες μέσω διαδικτύου στο διαδικτυακό κατάστημα ... Στο τέλος, το σενάριό μου είναι εύκολο να μετατραπεί σε εφαρμογή CGI για τη διαχείριση διακομιστή ιστού.

Μια τέτοια λύση μου φαίνεται ότι είναι όσο το δυνατόν πιο ευέλικτη, λειτουργική και συμπαγής, γιατί κάθε μέρος του προβλήματος επιλύεται με τα μέσα που είναι πιο κατάλληλα για την επίλυσή του.

Ας ξεκινήσουμε από ένα συγκεκριμένο παράδειγμα. Ως "ινδικό χοιρίδιο" προσφέρω τον ακόλουθο τιμοκατάλογο (βλ. Εικ. 1).

Όπως μπορείτε να δείτε, συνδυάζει όλα τα δυσάρεστα στοιχεία που αναφέρθηκαν παραπάνω: τόσο μορφοποίηση (φόντο, διαγώνια, έντονη) όσο και κρυφές γραμμές (αν κοιτάξετε προσεκτικά, θα παρατηρήσετε ότι η δωδέκατη γραμμή ακολουθεί αμέσως την ένατη). Ας τα φροντίσουμε.

Εξαγωγή δεδομένων από το Excel

Ας αρχίσουμε να λύνουμε το πρώτο πρόβλημα. Για εξαγωγή δεδομένων από το Excel, προτείνω μια απλή μακροεντολή για Visual Basic(οι αριθμοί γραμμών είναι μόνο για λόγους σχολιασμού):

1: Υποπίνακας2πίνακας ()

2: "

3: "μακροεντολή που αποθηκεύει την επιλογή του πίνακα

4: "σε μορφή κειμένου με σημάδια μορφοποίησης

5: "

6: Με το ActiveWindow.RangeSelection

7: c1 =. Στήλες. Στήλη

8: c2 =. Στήλες. Αριθμός - 1 + c1

9: r1 =. Σειρές. Σειρά

10: r2 =. Σειρές. Αριθμός - 1 + r1

11: Τέλος με

12: Αν (r1 - r2 = 0 Και c1 - c2 = 0) Τότε

13: MsgBox _

14: "κάτι λίγο επισημασμένο (για εξοικονόμηση), -)", _

15: vbCritical, "macro message"

16: Τέλος Αν

17: fileSaveName = Application.GetSaveAsFilename (_

18: InitialFileName: = "αρχείο", _

19: fileFilter: = "Αρχεία κειμένου ( * .txt), * .txt", _

20: Title: = "αποθήκευση της σελίδας στη μορφή μας")

21: If fileSaveName = False Τότε

22: MsgBox _

23: "δεν έχει επιλεγεί αρχείο. Δεν έχει γίνει καμία ενέργεια.", _

24: vbCritical, "macro message"

25: Αλλιώς

28: Ανοίξτε το αρχείοSaveName For Output As # 1

29: Για r = r1 έως r2

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

31: Για c = c1 έως c2

32: Με κελιά (r, c)

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

37: Τέλος με

38: Επόμενο

39: Εκτύπωση # 1, l

40: Επόμενο

41: Κλείσιμο # 1

42: Τέλος Αν

43: Τέλος υπο

Αυτή η μακροεντολή αποθηκεύει το επιλεγμένο μέρος του τιμοκαταλόγου στο καθορισμένο αρχείο. Η μακροεντολή μπορεί να προστεθεί στη λειτουργική έκδοση του τιμοκαταλόγου και να κάνει ένα κουμπί για να την καλέσετε (εκτός της περιοχής εκτύπωσης) ή μπορεί να αποθηκευτεί σε ξεχωριστό αρχείο... Είναι πολύ εύκολο να το τοποθετήσετε σε ένα έγγραφο: καλέστε τον επεξεργαστή της Visual Basic (μενού: "Εργαλεία -> Μακροεντολή -> Visual Basic Editor"; ή ), δημιουργήστε μια νέα ενότητα (μενού: "Εισαγωγή -> Ενότητα") και εισαγάγετε το κείμενο που εμφανίζεται εδώ (χωρίς αριθμούς γραμμών). Τώρα μπορείτε να σχεδιάσετε ένα κουμπί (ένα εργαλείο στον πίνακα "Φόρμες") και να του εκχωρήσετε μια μακροεντολή.

Ας ρίξουμε μια γρήγορη ματιά στον τρόπο λειτουργίας αυτού του κώδικα.

Η πρώτη γραμμή είναι η δήλωση της μακροεντολής. Όπως μπορείτε να δείτε, το ονόμασα απλώς table2table, μπορείτε να το ονομάσετε πιο ηχηρό.

Στις γραμμές 6 έως 11, ορίζουμε τα όρια του επιλεγμένου τμήματος του εγγράφου (άλλωστε, θα αποθηκεύσουμε μόνο το επιλεγμένο τμήμα). Τώρα τα c1 και c2 είναι οι πρώτοι και οι τελευταίοι αριθμοί στηλών και τα r1 και r2 είναι η πρώτη και τελευταία γραμμή της επιλογής.

Επιπλέον, στις γραμμές 12 έως 16, ελέγχουμε αν η περιοχή έχει επιλεγεί ή η μακροεντολή μας πρέπει να λειτουργεί μόνο με ένα κελί. Αυτό, φυσικά, δεν μπορείτε να το κάνετε, αλλά στην πραγματικότητα, πιθανότατα, δεν θα εκτελέσετε αυτήν τη μακροεντολή, αλλά οι διαχειριστές που επεξεργάζονται τον τιμοκατάλογο, δεν μπορείτε πάντα να βασίζεστε στην ακρίβειά τους. Έτσι, εάν δεν έχει επιλεγεί τίποτα, τότε η μακροεντολή μας θα εκδώσει μια προειδοποίηση (δείτε Εικ. 2).

Στις γραμμές 17 έως 20, επικαλούμαστε το παράθυρο διαλόγου Application.GetSaveAsFilename, έτσι ώστε ο χρήστης να μπορεί να επιλέξει ένα όνομα αρχείου (βλ. Εικόνα 3).

Και πάλι, μπορείτε απλά να δώσετε ένα σταθερό όνομα, αλλά νομίζω ότι αυτό είναι ενοχλητικό ακόμα κι αν χρησιμοποιείτε μόνοι σας αυτήν τη μακροεντολή.

Οι γραμμές 21 έως 42 περιέχουν μια δομή αν-τότε-άλλο με έλεγχο για να διαπιστωθεί εάν το όνομα του αρχείου που θα αποθηκευτεί καθορίστηκε ή ο χρήστης πάτησε το κουμπί Ακύρωση του διαλόγου Αποθήκευση ως ....

Εάν ο χρήστης αρνήθηκε να αποθηκεύσει, τότε εμφανίζεται ένα αντίστοιχο μήνυμα (γραμμές 22 έως 24), εάν καθοριστεί το όνομα του αρχείου, τότε αρχίζει το πιο ενδιαφέρον πράγμα - η αποθήκευση των δεδομένων.

Αλλά πριν συζητήσουμε τη διαδικασία αποθήκευσης (γραμμές 26 έως 41), ας πούμε λίγα λόγια για τη μορφή που σκοπεύουμε να αποθηκεύσουμε τα δεδομένα. Προτείνω την ευκολότερη μορφή για επεξεργασία: κείμενο ASCII. Κάθε σειρά αντιστοιχεί σε μια σειρά στον πίνακα που πρέπει να αποθηκευτεί. Τα πεδία χωρίζονται με έναν οριοθέτη χαρακτήρων. Το πρώτο πεδίο είναι το ύψος της γραμμής (αυτές οι πληροφορίες είναι απαραίτητες για να φιλτράρετε τις "κρυφές" γραμμές). Όλα τα επόμενα πεδία είναι το περιεχόμενο των κελιών, αλλά καθένα από αυτά τα πεδία περιέχει πολλά υποπεδία, χωρισμένα με τους δικούς τους διαχωριστές. Τα υποπεδία μεταφέρουν διάφορες πληροφορίες σχετικά με ένα κελί: περιεχόμενο, παράμετροι μορφοποίησης.

Οι διαχωριστές πεδίων και υποπεδίων ορίζονται με κωδικούς ASCII στις γραμμές 26 και 27, αντίστοιχα. Μπορείτε να επιλέξετε πιο βολικά διαχωριστικά. Για παράδειγμα, εάν είστε βέβαιοι ότι τα δεδομένα σας δεν περιέχουν ποτέ τον χαρακτήρα ":", τότε μπορείτε να τα λάβετε ως διαχωριστικό ή υποδιαίρεση.

Ας περάσουμε στις γραμμές (γραμμή 29).

Υπολογίστε το ύψος για κάθε γραμμή. Ταυτόχρονα, αρχίζουμε να προετοιμάζουμε μια γραμμή που θα αποθηκευτεί σε ένα αρχείο στη μεταβλητή l (γραμμή 30 της καταχώρισης).

Σε έναν βρόχο (γραμμή της λίστας 31) πάνω από τα κελιά της σειράς του πίνακα που αποθηκεύονται, προσθέστε στη γραμμή l όλες τις πληροφορίες σχετικά με τα κελιά που μας ενδιαφέρουν, παρέχοντάς την με οριοθέτες.

Ποιες ιδιότητες του κελιού εξοικονομούμε;

Το πρώτο βήμα είναι το κείμενο του κελιού. Σημειώστε ότι χρησιμοποιούμε την ιδιότητα .Text και όχι την ιδιότητα .Value. Αυτό δεν είναι τυχαίο. Η ιδιότητα .Value επιστρέφει το πραγματικό περιεχόμενο του κελιού, η ιδιότητα .Text επιστρέφει το κείμενο που εμφανίζεται στην οθόνη και εκτυπώνεται. Αυτές οι δύο τιμές μπορεί να μην συμπίπτουν (και συνήθως δεν ταιριάζουν), επειδή οι τιμές εμφανίζονται στην οθόνη σύμφωνα με την καθορισμένη μορφή κελιού (για παράδειγμα, οι αριθμοί εμφανίζονται με καθορισμένο αριθμό δεκαδικών ψηφίων).

Η ιδιότητα .MergeCells λέει εάν το κελί είναι μέρος μιας ομάδας συγχωνευμένων κελιών.

Η ιδιότητα .Font.Bold αντικατοπτρίζει την τόλμη του κειμένου στο κελί.

Η ιδιότητα .Font.Strikethrough λέει εάν το κείμενο έχει οριστεί ως διαχωριστικό.

Για το παράδειγμά μας, πιθανότατα δεν θα χρειαστούμε τίποτα άλλο. Ωστόσο, δεν μπορώ παρά να αναφέρω μια σειρά από χρήσιμες ιδιότητες που μπορεί να σας φανούν χρήσιμες. Τα ονόματα αυτών των ιδιοτήτων είναι αρκετά εύγλωττα και δεν θα τα σχολιάσω, θα περιοριστώ στη λίστα:

  • .Μονάδα. Όνομα
  • .Font.FontStyle
  • .Μέγεθος γραμματοσειράς
  • .Μονάδα
  • .Font.ColorIndex
  • . Γραμματοσειρά
  • .Οριζόντια ευθυγράμμιση
  • .Κατακόρυφη στοίχιση
  • .ColorIndex
  • .Πρότυπο

Σημειώστε ότι όλες οι ιδιότητες μεταφέρονται ρητά στον τύπο συμβολοσειράς από τη συνάρτηση CStr (γραμμές 33 έως 36). Αυτή είναι μια πολύ χρήσιμη διαδικασία που σας εξοικονομεί για πάντα όλους τους πονοκεφάλους σχετικά με τις μετατροπές τύπου.

Εδώ πρέπει να γίνει μια σημαντική προειδοποίηση. Το θέμα είναι ότι η συνάρτηση CStr δεν είναι σε θέση να χειριστεί απροσδιόριστες τιμές. Εάν αυτό θα βρεθεί στα έγγραφά σας, τότε αντί για CStr μπορείτε να χρησιμοποιήσετε τη δική σας συνάρτηση για τη μετατροπή τιμών σε μορφή κειμένου. Για παράδειγμα safeCStr:

1: Λειτουργία safeCStr (p As Variant) As String
2: Εάν IsNull (p) Τότε safeCStr = "" Άλλο ασφαλέςCStr = CStr (p)
3: Λειτουργία λήξης

Πρέπει να σημειώσω ότι εγώ ο ίδιος δεν έχω συναντήσει ποτέ τέτοιες καταστάσεις, αλλά ο επιστημονικός και τεχνικός σύμβουλος του περιοδικού βρήκε εύκολα έναν τιμοκατάλογο στο Διαδίκτυο, σε ορισμένα κελιά των οποίων η ιδιότητα Font.Bold δεν ορίστηκε. Πιστεύω ότι τέτοια έγγραφα μπορεί να προκύψουν από την εξαγωγή δεδομένων από άλλες εφαρμογές. Για παράδειγμα, τα προϊόντα 1C μπορούν να εξάγουν δεδομένα στο Excel. Εν ολίγοις, μια τέτοια κατάσταση είναι πιθανή. - Σημείωση συγγραφέα.

Έτσι, επιλέγετε την αποθηκευμένη περιοχή (στο παράδειγμά μας, αυτές είναι οι τρεις πρώτες στήλες του πίνακα, γραμμές 4 έως 21), κάνετε κλικ στο κουμπί που δημιουργήσατε, επιλέξτε το όνομα του αρχείου και το αρχείο αποθηκεύεται. Τι να το κάνεις μετά;

Δημιουργία σελίδας HTML από εξαγόμενα δεδομένα

Μπορείτε να κάνετε ό, τι θέλετε με αυτό το αρχείο, επειδή η μορφή του είναι πλήρως γνωστή σε εμάς (είναι ωραίο να το γνωρίζετε). Θα δώσω ένα παράδειγμα δημιουργίας μιας σελίδας HTML.

Όπως είπα, προτείνω ένα σενάριο Perl:

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

3: #use strict?

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

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

8: sub qtnum (

9: η $ t μου = μετατόπιση.

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

11: επιστροφή $ t;

12: }

14: sub qtstring (

15: η $ t μου = μετατόπιση.

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

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

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

19: $ t = ~ s / \

20: επιστροφή $ t?

21: }

23: εκτύπωση<<"TEXT";

24:

25:

26: τιμοκατάλογος μιας συγκεκριμένης εταιρείας

27:

32:

33:

34:

35:

36:

37:

38:

39:

40:

41:

42:

43:

44:

45:

46:

47:

48:

49:

50: ΚΕΙΜΕΝΟ

52: ενώ (<>) {

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

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

55: $ lh = shift @f;

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

57: εάν ($ lh) (

58: if ($ name-> eq $ TRUE) (# κεφαλίδα επεξεργασίας ενότητας

59: εκτύπωση "

\ n ";

62 :) else (# επεξεργασία κανονικής γραμμής

63: εκτύπωση<<"TEXT" .

64:

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

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

\ n \ n \ n ";

80: }

81: εκτύπωση<<"TEXT";

82:

83:

84: ΚΕΙΜΕΝΟ

85 :) άλλο (

86: προειδοποίηση "κρυφή γραμμή:". $ Name ->. "\ N";

87: }

88: }

90: εκτύπωση<<"TEXT";

91:

τιμοκατάλογος μιας συγκεκριμένης εταιρείας
Όνομα προϊόντος τιμή
cu τρίψιμο.
" .

60: $ name->.

61: "

67: ΚΕΙΜΕΝΟ

68: ($ name-> eq $ TRUE; " ":"") .

69: qtstring ($ name->).

70: ($ name-> eq $ TRUE; "":"") .

71: qq |

| .

72: ($ usd-> eq

$ ΑΛΗΘΕΙΑ; " ":"") .

73: qtnum ($ usd->).

74: ($ usd-> eq $ TRUE; "":"") .

75: qq |

| .

76: ($ rub-> eq

$ ΑΛΗΘΕΙΑ; " ":"") .

77: qtnum ($ rub->).

78: ($ rub-> eq $ TRUE; "":"") .

79: "

92:

93:

94: ΚΕΙΜΕΝΟ

Το σενάριο λαμβάνει είσοδο από ένα αρχείο που έχει οριστεί ως παράμετρος γραμμής εντολών ή από τυπική είσοδο και εκτυπώνει τον κώδικα HTML στην τυπική έξοδο. Δηλαδή, μπορείτε να το εκτελέσετε ως εξής:

perl file2html.pl file.txt> file.html

ή, για παράδειγμα, όπως αυτό:

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

Ας δούμε πώς λειτουργεί αυτό το σενάριο (υποθέτω ότι ο αναγνώστης είναι λίγο εξοικειωμένος με το Perl).

Η πρώτη γραμμή είναι η τυπική μαγική γραμμή οποιουδήποτε σεναρίου UNIX. Οι χρήστες των Windows μπορούν να το αγνοήσουν. Η τρίτη γραμμή περιέχει τη δήλωση αυστηρής χρήσης. Θα σας φανεί χρήσιμο μόνο κατά τον εντοπισμό σφαλμάτων.

Στις γραμμές 5 και 6, θα ορίσουμε τις μεταβλητές $ TRUE και $ FALSE, οι οποίες θα περιέχουν τις πραγματικές και ψευδείς τιμές που επιστρέφει το Excel. Το γεγονός είναι ότι το ρωσικό Excel χρησιμοποιεί ρωσικές λέξεις, ευρωπαϊκά - αγγλικά. Σχολιάστε τη γραμμή που σας ταιριάζει και σχολιάστε την επιπλέον.

Η διαδικασία qtnum (γραμμές 8 έως 12) προσθέτει ετικέτες στην εγγραφή αριθμών, μετατρέποντας το "3.14" σε "3, 14". Δηλαδή, σεντ και πένες θα εμφανίζονται με μικρότερη γραμματοσειρά. Αυτό είναι ένα καθαρά καλλυντικό μέτρο.

Η ρουτίνα qtstring (γραμμές 13 έως 21) παραθέτει "μη ασφαλείς" χαρακτήρες: & (και), "(διπλό απόσπασμα),< (больше), >(μικρότερος). Αυτό, όπως καταλαβαίνετε, είναι υποχρεωτικό μέτρο.

Οι γραμμές 23 έως 50 εκτυπώνουν την κεφαλίδα του εγγράφου HTML.

Στο βρόχο while (γραμμές 52 έως 88), διαβάζουμε το αρχείο εισόδου γραμμή προς γραμμή, το μετατρέπουμε σε έγγραφο HTML και το γράφουμε σε stdout.

Στη γραμμή 53, ο χαρακτήρας (οι χαρακτήρες) του τέλους της γραμμής αποκόπτονται από την επόμενη γραμμή ανάγνωσης. Δεν χρησιμοποιώ τις τυπικές λειτουργίες Perl chop και chomp, επειδή το αρχείο που υποβάλλεται σε επεξεργασία δημιουργείται στα Windows και ο χειριστής (το σενάριο Perl μας) μπορεί επίσης να λειτουργήσει υπό UNIX. Το αρχείο μπορεί να μεταφερθεί με πολύ εξωτικούς τρόπους. Για παράδειγμα, πολλοί άνθρωποι πιθανότατα θα θέλουν να τροποποιήσουν ελαφρώς τον κώδικά μου και να τον μετατρέψουν σε εφαρμογή CGI για τη διαχείριση του δικού τους διακομιστή. Επομένως, δεν βασίζομαι σε τυπικές συναρτήσεις, αλλά γράφω ρητά ότι πρέπει να αφαιρέσω όλους τους χαρακτήρες \ x0A και \ x0D στο τέλος της γραμμής.

Το πρώτο πεδίο, το ύψος γραμμής, αποθηκεύεται στη μεταβλητή $ lh (γραμμή 55). Όλα τα άλλα πεδία υποδιαιρούνται σε υποπεδία. Ως αποτέλεσμα, οι μεταβλητές $ name, $ usd, $ rub εκχωρούνται δείκτες σε πίνακες που περιέχουν όλες τις απαραίτητες πληροφορίες σχετικά με το περιεχόμενο και τη μορφοποίηση του αντίστοιχου κελιού. $ name - κελί με το όνομα του προϊόντος, $ usd - κελί με την τιμή σε δολάρια, $ rub - κελί με την τιμή σε ρούβλια. Αυτό γίνεται με μία μόνο γραμμή 56.

Εάν το ύψος της γραμμής δεν είναι μηδέν, τότε εκτελούμε το μπλοκ από 58 έως 84 γραμμές. Διαφορετικά, εκδίδουμε μια προειδοποίηση στο τυπικό ρεύμα σφάλματος stderr ότι εντοπίστηκε και αγνοήθηκε μια κρυφή συμβολοσειρά (γραμμή 86).

Η επεξεργασία των γραμμών του πίνακα μπορεί να φαίνεται περίπλοκη μόνο με την πρώτη ματιά.

Πρώτα απ 'όλα, καταλαβαίνουμε με τι έχουμε να κάνουμε: στη γραμμή 58, ελέγχουμε την αλήθεια της ιδιότητας MergeCells του κελιού με το όνομα του προϊόντος. Εάν αυτό το κελί συγχωνευτεί, τότε αυτή είναι η κεφαλίδα της ενότητας, τότε εκτελείται ο κώδικας που δημιουργεί την κεφαλίδα (γραμμές 59 έως 61).

Εάν αποδειχθεί ότι έχουμε να κάνουμε με μια κανονική γραμμή, τότε το μπλοκ else εκτελείται (γραμμές 63 έως 79). Εδώ σχηματίζεται μια σειρά πίνακα HTML, στην οποία εισάγονται πρόσθετα στοιχεία μορφοποίησης (για αυτές τις σειρές πίνακα όπου είναι απαραίτητο).

Σημειώστε ότι έχουμε ενσωματώσει ένα βασικό κόλπο DHTML στο έγγραφό μας. Η σειρά στην οποία βρίσκεται ο δείκτης του ποντικιού επισημαίνεται πάντα στον πίνακα. Αυτό διευκολύνει την ανάγνωση του πίνακα. Συμφωνείτε ότι είναι δύσκολο να επιτευχθεί ένα τέτοιο αποτέλεσμα χρησιμοποιώντας το Excel (αποθηκεύοντας ένα έγγραφο ως ιστοσελίδα).

Οι γραμμές 90-94 εμφανίζουν τις ετικέτες λήξης του εγγράφου. Λάβετε υπόψη ότι πρέπει να υπάρχει μια κενή γραμμή στο τέλος του αρχείου με το πρόγραμμα. Διαφορετικά, η τελευταία λέξη ("TEXT") (γραμμή 94) δεν θα υποβληθεί σε σωστή επεξεργασία από τον διερμηνέα Perl.

Η έξοδος φαίνεται στο σχήμα (σελ. 82).

Συμφωνώ, υπήρχε κάτι για το οποίο πρέπει να παλέψεις!

ΒΑΡΙΑ Τι άλλο μπορείτε να προσθέσετε;

Δεν έχω καμία αμφιβολία ότι αν και τα παραδείγματά μου είναι πλήρως λειτουργικά, λίγοι άνθρωποι θα τα χρησιμοποιήσουν χωρίς την παραμικρή τροποποίηση. Θέλω να ρίξω μερικές σκέψεις για το τι μπορεί να βελτιωθεί σε αυτά τα σενάρια, ώστε όταν τα τροποποιείτε να μην κάνετε περιττή δουλειά, αλλά να σκοτώνετε όσο το δυνατόν περισσότερα πουλιά ταυτόχρονα.

Σενάριο σε Visual Basic

Εδώ πιθανότατα θα πρέπει να αλλάξετε το σύνολο των αποθηκευμένων παραμέτρων κελιού. Παρέχω μια λίστα με τα πιο χρήσιμα στη συζήτηση αυτού του σεναρίου. Εάν χρειάζεστε κάτι εξωτικό, ανατρέξτε στην τεκμηρίωση της Microsoft, Ιδιότητες αντικειμένου εύρους.

Πιθανώς, πολλοί θα θεωρήσουν ένα ελάττωμα ότι η μακροεντολή αντικαθιστά σίγουρα τα υπάρχοντα αρχεία (εάν καθορίσετε ένα υπάρχον αρχείο για αποθήκευση). Αυτό, όπως μπορείτε να φανταστείτε, είναι εύκολο να διορθωθεί.

Πιθανώς, για πραγματικά έγγραφα θα είναι εύκολο να διατυπωθούν οι συνθήκες σύμφωνα με τις οποίες η μακροεντολή θα καθορίσει η ίδια την περιοχή του τιμοκαταλόγου (ή άλλου εγγράφου) που θα αποθηκευτεί. Στη συνέχεια, αυτή η διαδικασία μπορεί να αυτοματοποιηθεί. Η λύση μου (διατηρώντας την επιλεγμένη περιοχή) είναι περισσότερο ευέλικτη παρά βολική.

Τέλος, ο αναγνώστης μπορεί δικαίως να ρωτήσει γιατί μια μακροεντολή για το Excel αποθηκεύει κρυφές σειρές, επειδή μπορούν να εξαλειφθούν ήδη στο στάδιο εξαγωγής; Καπέλα για την προσοχή του αναγνώστη (ελπίζοντας κρυφά για μια αμοιβαία χειρονομία στη διάκριση μου). Η διατήρηση κρυφών γραμμών δεν είναι καθόλου απαραίτητη, απλώς έχω συνηθίσει να αποθηκεύω τα πάντα. Αιτίες? Μπορεί ακόμα να χρειάζεστε κρυφές γραμμές. Or μπορεί να θέλετε να μάθετε ποιες γραμμές αγνοήθηκαν (το σενάριο Perl μου, όπως θυμάστε, αναφέρει κάθε κρυφή γραμμή). Επίσης, οι πληροφορίες ύψους γραμμής μπορούν να αποτελέσουν κριτήριο για τον προσδιορισμό κεφαλίδων ... αν και φυσικά μπορείτε να τροποποιήσετε ελαφρώς τον κώδικα VB και να μην κρατήσετε κρυφές γραμμές.

Perl script

Φυσικά, όλος ο κώδικας HTML (που είναι το μεγαλύτερο μέρος του σεναρίου) είναι πιθανό να αλλάξει σημαντικά. Φυσικά, θα πρέπει να αλλάξετε τον αριθμό των στηλών, την κεφαλίδα, πολλές θα αφαιρέσουν τις κενές γραμμές διαχωρισμού μου από τον κώδικα HTML, θα προσθέσουν ένθετους πίνακες, θα αλλάξουν τις λειτουργίες DHTML, θα προσθέσουν πίνακες CSS ... Αλλά αυτό δεν είναι το πιο σημαντικό και όχι θεμελιώδης αλλαγή.

Πιθανότατα θα πρέπει να «διδάξετε» αυτό το σενάριο να χωρίσει μεγάλα έγγραφα σε ενότητες και να τα αποθηκεύσετε σε διαφορετικά αρχεία, επειδή ο τιμοκατάλογος μιας πολύ μέσης εταιρείας σε μορφή HTML μπορεί να τραβήξει εκατοντάδες κιλομπάιτ. Δεν περιμένει κάθε περιπλανώμενος Ιστός για να ολοκληρωθεί η λήψη ενός τέτοιου εγγράφου. Mightσως θελήσετε να προσθέσετε ταξινόμηση (εάν τα στοιχεία στον εκτυπωμένο τιμοκατάλογο και στον τιμοκατάλογο στον ιστό πρέπει να εμφανίζονται με διαφορετική σειρά).

Αναμφίβολα, η λειτουργία σύγκρισης της τρέχουσας τιμής με την προηγούμενη θα είναι χρήσιμη, η οποία θα προσθέσει πληροφορίες σχετικά με ενημερώσεις και δυναμική των τιμών.

Θα σας συμβούλευα να οργανώσετε τέτοιες διαδικασίες (που δεν σχετίζονται άμεσα με τη διάταξη HTML) με τη μορφή ξεχωριστών προγραμμάτων ή ενοτήτων. Παρεμπιπτόντως, μέρος της εργασίας σχετικά με τη διάταξη HTML μπορεί να ανατεθεί στον μηχανισμό SSI και αφήστε το σενάριο να συλλέξει το έγγραφο SHTML. Ένα σύνολο απλών εργαλείων είναι πάντα πιο βολικό, ευέλικτο και διαχειρίσιμο από ένα καθολικό. Μείνετε μακριά από την τσουγκράνα στην οποία περπατούν οι δημιουργοί του τηλεφώνου μικροκυμάτων και της οδοντόβουρτσας της τηλεόρασης.

Ο κατάλογος των συμβουλών και των προτάσεων είναι ατελείωτος, αλλά νομίζω ότι έχω ήδη αφυπνίσει τη φαντασία σας και τότε μπορείτε να ανταπεξέλθετε χωρίς εμένα. Η προσαρμογή του παραδείγματος που δίνεται εδώ στις συγκεκριμένες συνθήκες σας μπορεί να διαρκέσει αρκετές ώρες εργασίας. Αλλά τότε θα ανταμειφθείτε γενναιόδωρα, επειδή θα κάνετε όλες τις επακόλουθες ενημερώσεις πληροφοριών στον διακομιστή ιστού σας σε λίγα μόνο πατήματα του πληκτρολογίου και του ποντικιού!


Σε επαφή με

Εάν έχετε δημιουργήσει ένα ωραίο υπολογιστικό φύλλο Excel και τώρα θέλετε να το δημοσιεύσετε ως ιστοσελίδα, τότε ο ευκολότερος τρόπος για να γίνει αυτό είναι να το εξάγετε σε ένα παλιό καλό αρχείο HTML. Σε αυτό το άρθρο, θα εξετάσουμε διάφορους τρόπους μετατροπής δεδομένων από Excel σε HTML, θα καθορίσουμε τα πλεονεκτήματα και τα μειονεκτήματα κάθε μεθόδου και θα πραγματοποιήσουμε αυτήν τη μετατροπή βήμα προς βήμα μαζί σας.

Μετατρέψτε πίνακες Excel σε HTML χρησιμοποιώντας το εργαλείο Αποθήκευση ως ιστοσελίδας

Ας υποθέσουμε ότι έχετε δημιουργήσει μια πολυλειτουργική αναφορά στο Excel και τώρα θέλετε να εξάγετε όλες αυτές τις πληροφορίες, μαζί με ένα γράφημα και έναν συγκεντρωτικό πίνακα, στον ιστότοπο της εταιρείας, έτσι ώστε οι συνάδελφοί τους να μπορούν να τις δουν στο διαδίκτυο μέσω περιηγητών ιστού χωρίς να ανοίξουν το Excel.

Ακολουθήστε τα παρακάτω βήματα για να μετατρέψετε δεδομένα Excel σε HTML. Αυτές οι οδηγίες ισχύουν για το Excel 2013, 2010 και 2007.


Συμβουλή:Εάν αυτή είναι η πρώτη φορά που μετατρέπετε ένα βιβλίο εργασίας Excel σε αρχείο HTML, είναι συνετό να αποθηκεύσετε πρώτα την ιστοσελίδα στον σκληρό σας δίσκο, ώστε να μπορείτε να πραγματοποιήσετε τροποποιήσεις εάν είναι απαραίτητο πριν δημοσιεύσετε τη σελίδα στο Διαδίκτυο ή σε τοπικό δίκτυο.

Σχόλιο:Το HTML που δημιουργείται από το Excel δεν είναι πολύ καθαρό! Θα είναι υπέροχο όταν, μετά τη μετατροπή ενός μεγάλου πίνακα με πολύπλοκο σχεδιασμό, τον ανοίξετε σε οποιοδήποτε πρόγραμμα επεξεργασίας HTML και καθαρίσετε τον κώδικα πριν από τη δημοσίευση. Ως αποτέλεσμα, η σελίδα στον ιστότοπο θα φορτωθεί αισθητά πιο γρήγορα.

5 πράγματα που πρέπει να έχετε κατά νου κατά τη μετατροπή αρχείων Excel σε HTML

Όταν χρησιμοποιείτε το εργαλείο Save As Web Page, είναι σημαντικό να κατανοήσετε πώς λειτουργούν οι κύριες επιλογές του, προκειμένου να αποφύγετε τα πιο συνηθισμένα λάθη και να αποφύγετε τα πιο συνηθισμένα μηνύματα σφάλματος. Σε αυτήν την ενότητα, θα βρείτε μια γρήγορη επισκόπηση των επιλογών που πρέπει να ληφθούν υπόψη κατά τη μετατροπή αρχείων Excel σε HTML.

1. Υποστηρίξτε αρχεία και υπερσυνδέσμους

Όπως γνωρίζετε, οι ιστοσελίδες συχνά περιέχουν εικόνες και άλλα υποστηρικτικά αρχεία, καθώς και υπερσυνδέσμους προς άλλους ιστότοπους. Μετατρέποντας ένα αρχείο Excel σε μια ιστοσελίδα, η εφαρμογή συλλέγει αυτόματα σχετικά αρχεία και υπερσυνδέσμους για εσάς και τα αποθηκεύει σε έναν υποφάκελο.

Όταν αποθηκεύετε υποστηρικτικά αρχεία όπως γραφήματα και υφές φόντου στον ίδιο διακομιστή ιστού, το Excel δημιουργεί όλους τους συνδέσμους συγγενής... Ένας σχετικός σύνδεσμος (URL) δείχνει ένα αρχείο στον ίδιο ιστότοπο. καθορίζει το όνομα αρχείου ή τον ριζικό φάκελο αντί του πλήρους ονόματος της τοποθεσίας (για παράδειγμα, href = ” / images / 001.png”). Όταν διαγράφετε οποιοδήποτε στοιχείο που είναι αποθηκευμένο ως σχετικός σύνδεσμος, το Microsoft Excel αφαιρεί αυτόματα το συνδεδεμένο αρχείο από τον βοηθητικό φάκελο.

Άρα, ο βασικός κανόνας είναι διατηρείτε πάντα την ιστοσελίδα σας και τα αρχεία υποστήριξης σε ένα μέροςδιαφορετικά η ιστοσελίδα δεν θα εμφανιστεί σωστά. Εάν μετακινήσετε ή αντιγράψετε την ιστοσελίδα σας σε διαφορετική τοποθεσία, φροντίστε να αντιγράψετε τον υποφάκελο στην ίδια θέση, διαφορετικά οι σύνδεσμοι θα είναι λανθασμένοι. Εάν αποθηκεύσετε ξανά την ιστοσελίδα σε διαφορετική τοποθεσία, το Microsoft Excel θα αντιγράψει αυτόματα τον βοηθητικό φάκελο δίπλα του.

Εάν αποθηκεύετε ιστοσελίδες σε διαφορετικές τοποθεσίες ή εάν το αρχείο Excel περιέχει υπερσυνδέσμους προς εξωτερικούς ιστότοπους, τότε σε τέτοιες περιπτώσεις, απόλυτοςσυνδέσεις. Οι απόλυτοι σύνδεσμοι περιέχουν την πλήρη διαδρομή προς ένα αρχείο ή ιστοσελίδα στην οποία μπορείτε να έχετε πρόσβαση από οπουδήποτε, για παράδειγμα: www.yourdomain / section / page.htm.

2. Πραγματοποίηση αλλαγών και αποθήκευση της ιστοσελίδας

Θεωρητικά, μπορείτε να αποθηκεύσετε το βιβλίο εργασίας του Excel ως ιστοσελίδα, στη συνέχεια να ανοίξετε την προκύπτουσα ιστοσελίδα στο Excel, να κάνετε αλλαγές και να αποθηκεύσετε ξανά το αρχείο. Ωστόσο, σε αυτήν την περίπτωση, ορισμένες δυνατότητες του Excel δεν θα είναι διαθέσιμες. Για παράδειγμα, τυχόν γραφήματα που περιέχονται στο βιβλίο εργασίας σας θα μετατραπούν σε ανεξάρτητα σχέδια και δεν θα μπορείτε να τα τροποποιήσετε στο Excel, όπως κάνατε πριν.

Επομένως, ο καλύτερος τρόπος είναι να ενημερώσετε πρώτα το αρχικό βιβλίο εργασίας του Excel με κάποιες αλλαγές, στη συνέχεια να το αποθηκεύσετε ως βιβλίο εργασίας του Excel (.xlsx) και μόνο στη συνέχεια να το μετατρέψετε ξανά σε μια ιστοσελίδα.

3. Αυτόματη αναδημοσίευση μιας ιστοσελίδας

Εάν έχετε επιλέξει το πλαίσιο δίπλα στην παράμετρο Αυτόματη αναδημοσίευση(Αυτόματη ανατύπωση) στο παράθυρο διαλόγου Δημοσίευση ως ιστοσελίδα(Δημοσίευση ιστοσελίδας) που αναφέραμε νωρίτερα σε αυτό το άρθρο, τότε η ιστοσελίδα σας θα ανανεώνεται αυτόματα κάθε φορά που αποθηκεύετε το βιβλίο εργασίας. Αυτή η δυνατότητα είναι πολύ χρήσιμη και σας επιτρέπει να διατηρείτε πάντα ένα ενημερωμένο ηλεκτρονικό αντίγραφο του υπολογιστικού φύλλου Excel.

Εάν ενεργοποιήσετε την παράμετρο Αυτόματη αναδημοσίευση(Αυτόματη ανατύπωση), τότε κάθε φορά που αποθηκεύετε το βιβλίο εργασίας, θα εμφανίζεται ένα μήνυμα που σας ζητά να επιβεβαιώσετε εάν θέλετε να ενεργοποιήσετε ή να απενεργοποιήσετε την αυτόματη επανεκτύπωση. Εάν θέλετε το φύλλο Excel να δημοσιεύεται αυτόματα, επιλέξτε Επιτρέπω ...(Ενεργοποιήστε ...) και κάντε κλικ Εντάξει.

Ωστόσο, μπορεί να υπάρχουν περιπτώσεις όπου δεν θέλετε να δημοσιεύσετε αυτόματα το φύλλο του Excel ή τα στοιχεία του, για παράδειγμα, εάν το αρχείο περιέχει εμπιστευτικές πληροφορίες ή έχει τροποποιηθεί από κάποιον που δεν είναι αξιόπιστο άτομο. Σε αυτήν την περίπτωση, μπορείτε να απενεργοποιήσετε προσωρινά ή μόνιμα την αυτόματη δημοσίευση.

Για να απενεργοποιήσετε προσωρινά την αυτόματη αναδημοσίευση, επιλέξτε την πρώτη από τις προτεινόμενες επιλογές στην παραπάνω ανάρτηση - Απενεργοποιήστε τη δυνατότητα αυτόματης δημοσίευσης ενώ είναι ανοιχτό αυτό το βιβλίο εργασίας(Απενεργοποιήστε τη λειτουργία αυτόματης ανατύπωσης όταν αυτό το βιβλίο είναι ανοιχτό). Αυτό θα απενεργοποιήσει την αυτόματη δημοσίευση για την τρέχουσα περίοδο λειτουργίας του Excel, αλλά την επόμενη φορά που θα ανοίξετε το βιβλίο εργασίας, θα ενεργοποιηθεί ξανά.

Για να απενεργοποιήσετε μόνιμα την αυτόματη επανεκτύπωση για όλα τα επιλεγμένα στοιχεία, ανοίξτε ένα βιβλίο εργασίας του Excel και μεταβείτε στο παράθυρο διαλόγου Δημοσίευση ως ιστοσελίδα(Δημοσίευση ιστοσελίδας) και κάντε κλικ Δημοσιεύω(Θέση). Στο κεφάλαιο Στοιχεία προς δημοσίευση(Δημοσιευμένα στοιχεία) στη λίστα Επιλέγω(Επιλογή) επιλέξτε το στοιχείο που δεν θέλετε να δημοσιεύσετε και κάντε κλικ στο κουμπί Αφαιρώ(Διαγράφω).

4. Οι δυνατότητες του Excel δεν υποστηρίζονται σε ιστοσελίδες

Δυστυχώς, ορισμένες πολύ χρήσιμες και δημοφιλείς δυνατότητες του Excel δεν είναι διαθέσιμες όταν μετατρέπετε τα φύλλα του Excel σε HTML:

  • Εχωμορφοποίηση λέξεωνδεν υποστηρίζεται κατά την αποθήκευση του φύλλου Excel ως Ιστοσελίδα ενός αρχείου(Ιστοσελίδα σε αυτό το αρχείο), οπότε βεβαιωθείτε ότι το έχετε αποθηκεύσει ως Ιστοσελίδα(Ιστοσελίδα). Τα γραφήματα ράβδων, οι γραμμές χρωμάτων και τα σύνολα εικονιδίων δεν υποστηρίζονται και από τις δύο μορφές ιστοσελίδων.
  • Περιστροφή ή veκάθετο κείμενοδεν υποστηρίζεται κατά την εξαγωγή δεδομένων από το Excel σε μορφή ιστοσελίδας. Κάθε περιστρεφόμενο ή κάθετο κείμενο στο βιβλίο εργασίας σας θα μετατραπεί σε οριζόντιο κείμενο.

5. Οι πιο συνηθισμένες δυσκολίες που αντιμετωπίστηκαν κατά τη μετατροπή αρχείων Excel σε HTML

Κατά τη μετατροπή ενός βιβλίου εργασίας του Excel σε μια ιστοσελίδα, ενδέχεται να αντιμετωπίσετε τις ακόλουθες γνωστές δυσκολίες.

Μερικές φορές έρχεται ένας διευθυντής και λέει: - Θέλω να δω αυτόν τον πίνακα στον ιστότοπο.
Και φύλλα.
Δύο τυπικές διαδρομές προκύπτουν:
- είτε μέσω ενός συγκεκριμένου πίνακα διαχείρισης στον επεξεργαστή, σμιλεύστε έναν πίνακα και γεμίστε τον με τιμές.
- είτε με χειρολαβές απευθείας σε html και επίσης γεμίζουν με τιμές.
Και δεν πειράζει αν υπάρχουν 3x5 κελιά, αλλά αν υπάρχουν περισσότερα.

Αντιμέτωπος με αυτό πριν από μερικά χρόνια, ανακάλυψα μια μέθοδο βασισμένη στη χρήση του Windows Live Writer (λογισμικό για τη σύνταξη και αποστολή αναρτήσεων σε κάποιες πλατφόρμες ιστολογίου).

Είναι απλό. Επικολλήστε τον αντιγραμμένο πίνακα σε WLW με μια ειδική πάστα, διατηρώντας τη μορφή

Στη συνέχεια, μεταβείτε στην κάτω καρτέλα "Πηγή" στο WLW και αντιγράψτε από το πεδίο όλο τον τεράστιο κώδικα

Αποδεικνύεται με αυτόν τον τρόπο ή σχεδόν το ίδιο με το πρωτότυπο. Ο χρόνος διαρκεί δευτερόλεπτα, εκτός από το εφάπαξ κόστος σύνδεσης WLW σε κάποιο λογαριασμό ιστολογίου.
Ένα παράδειγμα είναι εδώ κωδικοποιημένο

Ως αποτέλεσμα, λαμβάνουμε μια σελίδα με 320 γραμμές κειμένου.

Εκεί πρέπει ακόμα να βρείτε αυτό που χρειάζεστε για να χρησιμοποιήσετε ...

Για παράδειγμα, ας πάρουμε ένα υπολογιστικό φύλλο Excel που αποτελείται από 4 στήλες και 12 σειρές.
Στήλη Α - αρίθμηση στοιχείων σε αύξουσα σειρά γραμμών στοιχείων
Στήλη Β - αριθμός αντικειμένων
Στήλη Γ - τιμή ενός αντικειμένου
Στήλη Δ - το άθροισμα του κόστους των ειδών σε μία γραμμή ως το προϊόν της τιμής του είδους κατά την ποσότητα τους
Στήλη D κύτταρο D12 - το άθροισμα του κόστους όλων των ειδών

Είναι αυτονόητο ότι ο ίδιος ο πίνακας με τη μορφή προέχωαρχείο δεν μπορεί να φιλοξενηθείστα υλικά του ιστότοπου για διάφορους λόγους. Για την τοποθέτησή του, απαιτείται δημοσίευση με τη μορφή κειμενικής αναπαράστασης δεδομένων μετατροπή σε Htmlσυμβατή μορφή.

Προσθέστε πρώτα πριν από τον πίνακα μια ακομη γραμμη, επισημαίνεται κόκκινο πλαίσιο .
Στη συνέχεια, πριν από κάθε στήλη του πίνακα, προσθέστε μια ακόμη στήλη, προσθέστε 4 ακόμη στήλες, επιλεγμένες πράσινα πλαίσια .

Ως αποτέλεσμα, παίρνουμε έναν πίνακα που αποτελείται από 8 στήλες και 13 σειρές.

Μέσα στο κελί Α'1με τη μορφή κειμένου που γράφουμε Htmlετικέτα πίνακα


Στα κελιά της περιοχής Α2-Α11πριν από κάθε κελί στήλης σιμε τη μορφή κειμένου, γράψτε το άνοιγμα Htmlετικέτες γραμμών και κελιών
Μέσα στο κελί Ι14με τη μορφή κειμένου, γράψτε το κλείσιμο Htmlετικέτα πίνακα

Σε κελιά εύρους C2-C11 , Ε2-Ε11 , G2-G11 πριν από κάθε κελί στήλης ρε , φάκαι Ημε τη μορφή κειμένου, γράψτε το κλείσιμο και το άνοιγμα Htmlετικέτες κελιών

Στα κελιά της περιοχής Ι2-Ι13μετά από κάθε κελί στήλης Ημε τη μορφή κειμένου, γράψτε το κλείσιμο Htmlετικέτες κελιών και σειρών

Περαιτέρω στα κύτταρα Α12και Α13ως κείμενο, γράψτε το άνοιγμα Htmlετικέτα γραμμής και άνοιγμα Htmlετικέτα κελιού με χαρακτηριστικό κολσπάνσυνενώνονται σε χορδές 12 και 13 στήλες σι , ρεκαι φάσε ένα κελί

Ως αποτέλεσμα, λαμβάνουμε έναν πίνακα που συμπληρώνεται με τα αρχικά δεδομένα προέχωμορφή και Ετικέτες HTMLως κείμενο.

Περαιτέρω μέσα Πρόγραμμα επεξεργασίας Excel, επιλέξτε τον πίνακα στην περιοχή Α1-Ι13, στο μενού προγράμματος, επιλέξτε την εντολή "Αποθήκευση ως"και αποθηκεύστε την επιλογή ως αρχείο κειμένου(για παράδειγμα - tabltxt.txt), η κωδικοποίηση δεν έχει σημασία, μπορείτε να αποθηκεύσετε όπως στην κωδικοποίηση UTF-8και στην κωδικοποίηση Κα-DOS... Το Excel θα εμφανίσει ένα προειδοποιητικό παράθυρο:

Πατήστε το πλήκτρο "ΕΝΤΑΞΕΙ"και το Excel θα εμφανίσει ξανά ένα παράθυρο προειδοποίησης:

Πατήστε το πλήκτρο "ΝΑΙ"και το επιλεγμένο τμήμα θα αποθηκευτεί ως αρχείο κειμένου tabltxt.txt

Επιπλέον, περαιτέρω εργασία για τη μετατροπή μεταφέρεται στον επεξεργαστή HTML, κατ 'αρχήν, όλα τα άλλα μπορούν να γίνουν με απλό τρόπο επεξεργαστής κειμένου, αλλά επιλογή με επεξεργαστή HTML προτιμότερο.

Ανοίγοντας το αρχείο tabltxt.txtσε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου, επιλέξτε όλο το περιεχόμενο ως κείμενο και επικολλήστε το Htmlσυντάκτης στο Λειτουργία HTML... Ας πάρουμε το ακόλουθο κείμενο προέλευσης HTML του πίνακα. Μπορείτε επίσης να πάρετε την επιλογή ενός αποθηκευμένου αρχείου από το Excel. Η μόνη διαφορά είναι ότι, ανάλογα με την κωδικοποίηση του αποθηκευμένου αρχείου, μπορεί να περιέχει "τεχνητά"με τη μορφή επιπλέον χαρακτήρων όπως μπορείτε να δείτε στο στιγμιότυπο οθόνης στα κελιά ( " " ).

Στη συνέχεια, διαγράφουμε τα πάντα "τεχνητά"εάν υπάρχει, και όλους τους χώρους. Γράφουμε επίσης Στυλ CSSγια κελιά πίνακα: td (padding: 1px 12px; text-align: center;)Ως αποτέλεσμα, θα λάβουμε το αρχικό κείμενο HTML του πίνακα σε μορφή HTML. (το στιγμιότυπο οθόνης εμφανίζεται ως έχει χωρίς δομική μορφοποίηση HTML σαν να φαινόταν σε επεξεργαστή κειμένου)... Σε αυτήν τη μορφή, το κείμενο προέλευσης του πίνακα είναι κατάλληλο για χρήση ως Πίνακες HTMLδεδομένα για δημοσίευση στο υλικό, καθώς είναι καθαρά μορφή HTML.

Μετά την αποθήκευση του πίνακα ως αρχείου HTML και την προβολή του στο πρόγραμμα περιήγησης, έχουμε την ακόλουθη εμφάνιση του πίνακα που μετατράπηκε από μορφή excel σε μορφή HTML.

Το νόημα όλων των παραπάνω ενεργειών περιορίζεται σε ένα πράγμα:

1 . Φόρμα πριν από κάθε γραμμή πίνακα excel, γραμμή HTML και έναρξη Κελιά HTML.
2 . Μορφή μεταξύ των στηλών του πίνακα excel, το τέλος ενός και την αρχή ενός άλλου κελιού HTML.
3 . Δημιουργήστε μετά από κάθε σειρά του πίνακα excel, το τέλος των κελιών και των γραμμών HTML.
4 . Έντυπο στην αρχή και στο τέλος του πίνακα excel, την αρχή και το τέλος του πίνακα HTML ως ετικέτα πίνακα.

Είναι αυτονόητο ότι για μια πιο εμφανή εμφάνιση των δεδομένων του πίνακα, πρέπει να γράψετε τις κλάσεις CSS Ετικέτες HTMLσειρές και κελιά του πίνακα. Για παράδειγμα, με χαρακτηριστικά εσοχής, χρώμα και στυλ της γραμματοσειράς, περιγράμματα και άλλο σχέδιο. Αλλά αυτό είναι ένα ξεχωριστό θέμα που δεν εξετάζεται σε αυτό το υλικό ...