ترجمة جدول من Excel إلى html. التحويل من Excel إلى HTML: صحيح ، جودة عالية ، بسيط. أشياء يجب وضعها في الاعتبار عند تحويل ملفات Excel إلى HTML

في تواصل مع

زملاء الصف

ألكسي ميتشورين

التحويل من Excel إلى HTML:

بشكل صحيح وفعال وبسيط

لذا ، فإن مهمتنا هي تحويل مستند بشكل صحيح من تنسيق xls إلى تنسيق HTML ، مع مراعاة تنسيق المستند الأصلي وفي نفس الوقت باستخدام "القليل من الدم"

صياغة المشكلة. او ما هي المشكلة؟

غالبًا ما يواجه العديد من مشرفي المواقع مهمة تحويل الملفات مايكروسوفت اكسللتنسيقات أخرى. غالبًا ما يكون هذا محفوفًا بالصعوبات ، نظرًا لأن تنسيق xls ، كما يعلم الجميع جيدًا ، غير موثق.

في بعض الحالات ، من الممكن حفظ بيانات Excel بتنسيقات موثقة ثم معالجتها. ومع ذلك ، فإن هذه الطريقة لا تعمل في كثير من الأحيان بشكل مرض. لا تستطيع التنسيقات البسيطة وسهلة التعامل تخزين جميع معلومات التنسيق الخاصة بمستند ، كما أن تنفيذ معالج تنسيق معقد يستغرق وقتًا طويلاً بشكل غير معقول.

ليس عليك أن تذهب بعيدًا للحصول على مثال. تقوم العديد من الشركات التي لديها صفحات ويب خاصة بها وتقوم بتحديثها بشكل دوري بأعمالها باستخدام Excel. يواجه مشرف الموقع مهمة تحويل في كل مرة يتم فيها تحديث المعلومات على الخادم. علاوة على ذلك ، يمكن أن تكون المهمة معقدة من خلال الجوانب التالية:

أولاً ، هناك تغيير في التصميم. عادة ما يتم تصميم قائمة الأسعار المعدة في Excel للطباعة على طابعة بالأبيض والأسود. قائمة الأسعار على الموقع ليست كذلك. لهذا السبب على الأقل ، فإن عبارة "حفظ كصفحة ويب" البسيطة ليست مناسبة (لا أتحدث عن جودة كود HTML الذي تم الحصول عليه عند حفظه).

ثانيًا ، عند التحويل ، من الضروري مراعاة تفاصيل برنامج Excel. على سبيل المثال ، يستخدم العديد من الأشخاص الذين يقومون بتحرير قائمة الأسعار الأمر Format / Line / Hide على نطاق واسع. في هذه الحالة ، يصبح ارتفاع الخط صفراً ، ويبدو أن الخط يختفي من الشاشة وعند الطباعة. من الواضح أن مثل هذه الخطوط لا ينبغي أن تصل إلى الموقع أيضًا. ومع ذلك ، يتم حفظها بشكل ممتاز في تنسيقات أخرى ولا تختلف عن السلاسل العادية وغير المخفية. وهذا يؤدي إلى حقيقة أن مبدأ "الحفظ كنص وعملية محددين" لا يعطي نتائج مرضية.

ثالثًا ، غالبًا ما تستخدم قائمة الأسعار التنسيق ، وهو أمر ضروري للحفاظ عليه. على سبيل المثال ، قد تكون أسماء بعض السلع يتوسطها خط أو مظللة بالألوان كإشارة إلى أن هذه السلع كانت وستكون بالضرورة كذلك ، لكنها ليست كذلك الآن. قد تكون بعض المواقف مائلة وهكذا. تختفي كل هذه المعلومات بدون أثر إذا قمت بإعادة حفظ قائمة الأسعار إلى شكل بسيط، على سبيل المثال ، كنص محدد بعلامات جدولة.

لذا ، فإن مهمتنا هي تحويل المستند بشكل صحيح من تنسيق xls إلى تنسيق HTML ، مع مراعاة تنسيق المستند الأصلي ، وفي نفس الوقت باستخدام "القليل من الدم".

أقترح تقسيم هذه المهمة إلى قسمين. الأول هو تخزين البيانات بتنسيق بسيط ، والذي ، مع ذلك ، سيحمل جميع المعلومات التي نحتاجها حول ترميز المستند. والثاني هو معالجة هذا التنسيق وإنشاء صفحة HTML.

أقترح حل المهمة الأولى (التصدير) باستخدام أدوات Excel. هنا ليس لدينا خيار في الواقع ، لا يمكن معالجة تنسيق xls إلا من خلال التطبيق الوحيد في العالم الذي يفهمه. هذا جدلي.

أقترح حل المشكلة الثانية عن طريق لغة بيرل. لماذا ا؟ لأن هذه اللغة تركز على العمل مع السلاسل وحل مشاكل مثل مشاكلنا (Perl - عملية استخراج ولغة التقرير - ما تحتاجه). لأن هذه اللغة معروفة من قبل الكثير من المبرمجين المرتبطين بتطوير الويب (إذا لم تكن واحدًا منهم وتخطط للعمل على الويب ، فأنا أوصي بصدق بالانتباه إلى Perl). لأن هذه اللغة مجانية ومتاحة لأي مستخدم على أي منصة. ولأن كود Perl الخاص بي يمكن تعديله بسهولة ، فإنه يجبره ، على سبيل المثال ، على وضع كل قسم من قائمة الأسعار في ملف منفصل ، وفرز مواضع الأسعار بطرق مختلفة ، وتتبع التحديثات وديناميكيات الأسعار ، وتزويد كل موضع بـ HTML حقول النموذج للطلب عبر الإنترنت في المتجر الإلكتروني ... في النهاية ، من السهل تحويل البرنامج النصي الخاص بي إلى تطبيق CGI لإدارة خادم الويب.

يبدو لي هذا الحل مرنًا وعمليًا ومضغوطًا قدر الإمكان ، لأن كل جزء من المشكلة يتم حله بالوسائل الأكثر ملاءمة لحلها.

لنبدأ من مثال محدد. بصفتي "خنزير غينيا" ، أقترح قائمة الأسعار التالية (انظر الشكل 1).

كما ترى ، فهو يجمع بين جميع العناصر غير السارة المذكورة أعلاه: التنسيق (الخلفية ، يتوسطه خط ، غامق) والخطوط المخفية (إذا نظرت عن كثب ، ستلاحظ أن السطر الثاني عشر يتبع السطر التاسع مباشرة). دعونا نعتني بهم.

تصدير البيانات من Excel

لنبدأ في حل المشكلة الأولى. لتصدير البيانات من Excel ، أقترح ماكرو بسيط لـ البصرية الأساسية(أرقام الأسطر مخصصة للتعليق فقط):

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: مسجبوكس _

14: "شيء مميز قليلاً (للحفظ) ، -)" ، _

15: vbCritical ، "رسالة ماكرو"

16: نهاية إذا

17: fileSaveName = Application.GetSaveAsFilename (_

18: InitialFileName: = "ملف" ، _

19: fileFilter: = "Text Files (* .txt)، * .txt"، _

20: العنوان: = "حفظ الصفحة بتنسيقنا")

21: إذا كان fileSaveName = False ثم

22: مسجبوكس _

23: "لم يتم اختيار ملف. لم يتم اتخاذ أي إجراء" ، _

24: vbCritical ، "رسالة ماكرو"

25: آخر

28: افتح fileSaveName للإخراج كـ # 1

29: لـ r = r1 إلى r2

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

31: من أجل c = c1 إلى c2

32: مع الخلايا (ص ، ج)

33: l = l + sep + CStr (. نص) + _

37: انتهى ب

38: التالي

39: طباعة رقم 1 ، ل

40: التالي

41: أغلق # 1

42: نهاية إذا

43: نهاية الفرعية

يحفظ هذا الماكرو الجزء المحدد من قائمة الأسعار في الملف المحدد. يمكن إضافة الماكرو إلى إصدار العمل من قائمة الأسعار وعمل زر لاستدعائه (خارج منطقة الطباعة) ، أو يمكن تخزينه في ملف منفصل... من السهل جدًا وضعه في مستند: اتصل بمحرر Visual Basic (القائمة: "أدوات -> ماكرو -> محرر Visual Basic" ؛ أو ) ، قم بإنشاء وحدة نمطية جديدة (القائمة: "إدراج -> وحدة") وأدخل النص الموضح هنا (بدون أرقام الأسطر). يمكنك الآن رسم زر (أداة في لوحة Forms) وتعيين ماكرو له.

دعنا نلقي نظرة سريعة على كيفية عمل هذا الرمز.

السطر الأول هو إعلان الماكرو. كما ترون ، أسميته بوضوح table2table ، يمكنك تسميته أكثر رنانًا.

في السطور من 6 إلى 11 ، نحدد حدود الجزء المحدد من المستند (بعد كل شيء ، سنحفظ الجزء المحدد فقط). الآن c1 و c2 هما أول وآخر رقمين ، و r1 و r2 هما أول وآخر سطور من التحديد.

علاوة على ذلك ، في السطور من 12 إلى 16 ، نتحقق مما إذا تم تحديد المنطقة أم أن الماكرو الخاص بنا يجب أن يعمل مع خلية واحدة فقط. هذا ، بالطبع ، لا يمكن القيام به ، ولكن في الواقع ، على الأرجح ، لن تكون أنت من سيقوم بتشغيل هذا الماكرو ، لكن المديرين يقومون بتحرير قائمة الأسعار ، لا يمكنك دائمًا الاعتماد على دقتها. لذلك ، إذا لم يتم تحديد أي شيء ، فسيقوم الماكرو بإصدار تحذير (انظر الشكل 2).

في السطور من 17 إلى 20 ، نستدعي مربع حوار Application.GetSaveAsFilename بحيث يمكن للمستخدم تحديد اسم ملف (انظر الشكل 3).

مرة أخرى ، يمكنك فقط إعطاء اسم ثابت ، لكنني أعتقد أن هذا غير مريح حتى لو كنت تستخدم هذا الماكرو بنفسك.

تحتوي الأسطر من 21 إلى 42 على بنية if-then-else مع فحص لمعرفة ما إذا كان اسم الملف المراد حفظه محددًا أو ضغط المستخدم على الزر "إلغاء الأمر" في مربع الحوار "حفظ باسم ...".

إذا رفض المستخدم الحفظ ، فسيتم عرض رسالة مقابلة (الأسطر من 22 إلى 24) ، إذا تم تحديد اسم الملف ، فسيبدأ الشيء الأكثر إثارة للاهتمام - حفظ البيانات.

ولكن قبل أن نناقش إجراء التخزين (الأسطر من 26 إلى 41) ، دعنا نقول بضع كلمات حول التنسيق الذي ننوي حفظ البيانات به. أقترح أسهل تنسيق للمعالجة: نص ASCII. كل صف يتوافق مع صف في الجدول ليتم حفظه. يتم فصل الحقول بواسطة محدد حرف واحد. الحقل الأول هو ارتفاع الخط (هذه المعلومات مطلوبة لتصفية الخطوط "المخفية"). جميع الحقول اللاحقة هي محتويات الخلايا ، لكن كل حقل من هذه الحقول يحتوي على عدة حقول فرعية ، مفصولة بفواصل خاصة بها. تحمل الحقول الفرعية معلومات متنوعة حول الخلية: المحتوى ، معلمات التنسيق.

تم تعيين فواصل الحقول والحقول الفرعية الخاصة بنا بواسطة أكواد ASCII في السطر 26 و 27 ، على التوالي. يمكنك اختيار فواصل أكثر ملاءمة. على سبيل المثال ، إذا كنت متأكدًا من أن بياناتك لا تحتوي أبدًا على الحرف ":" ، فيمكنك اعتباره فاصلًا أو قسمًا فرعيًا.

دعنا نمر عبر الخطوط (السطر 29).

احسب ارتفاع كل سطر. في الوقت نفسه ، نبدأ في إعداد سطر ليتم حفظه في ملف في المتغير l (السطر 30 من القائمة).

في حلقة (سطر من القائمة 31) فوق خلايا صف الجدول الذي يتم حفظه ، أضف إلى الصف l جميع المعلومات حول الخلايا التي تهمنا ، مع تزويدها بالمحددات.

ما هي خصائص الخلية التي نحفظها؟

الخطوة الأولى هي نص الخلية. لاحظ أننا نستخدم خاصية النص. وليس خاصية القيمة. هذه ليست مصادفة. تقوم الخاصية .Value بإرجاع المحتوى الحقيقي للخلية ، وتعيد الخاصية .Text النص الذي يتم عرضه على الشاشة وطباعته. قد لا تتطابق هاتان القيمتان (وعادة لا تتطابقان) ، لأنه يتم عرض القيم على الشاشة وفقًا لتنسيق الخلية المحدد (على سبيل المثال ، يتم عرض الأرقام مع عدد محدد من المنازل العشرية).

تخبر الخاصية .MergeCells ما إذا كانت الخلية جزء من مجموعة من الخلايا المدمجة.

تعكس الخاصية .Font.Bold درجة وضوح النص في الخلية.

تخبر الخاصية .Font.Strikethrough ما إذا كان نمط النص يتوسطه خط أم لا.

على سبيل المثال ، ربما لن نحتاج إلى أي شيء آخر. ومع ذلك ، لا يسعني إلا أن أذكر عددًا من الخصائص المفيدة التي قد تكون مفيدة لك. أسماء هذه الخصائص بليغة ولن أعلق عليها ، سأقتصر على سرد:

  • .اسم الخط
  • الخط. الخط
  • .حجم الخط
  • خط
  • الخط الملون الفهرس
  • خط مائل
  • . المحاذاة الأفقية
  • .انحياز عمودي
  • .مؤشر اللون
  • .نمط

لاحظ أنه يتم تحويل جميع الخصائص بشكل صريح إلى نوع السلسلة بواسطة وظيفة CStr (الأسطر من 33 إلى 36). هذا إجراء مفيد للغاية يوفر عليك كل متاعب تحويل نوع إلى الأبد.

يجب عمل تحذير هام هنا. النقطة المهمة هي أن وظيفة CStr غير قادرة على التعامل مع القيم غير المحددة. إذا تم العثور على هذا في مستنداتك ، فعندئذٍ بدلاً من CStr يمكنك استخدام وظيفتك الخاصة لتحويل القيم إلى تنسيق نصي. على سبيل المثال SafeCStr:

1: وظيفة safeCStr (p كمتغير) كسلسلة
2: إذا IsNull (p) ثم safeCStr = "" Else safeCStr = CStr (p)
3: وظيفة النهاية

يجب أن أشير إلى أنني لم أواجه مثل هذه المواقف من قبل ، لكن المستشار العلمي والتقني للمجلة وجد بسهولة قائمة أسعار على الإنترنت ، في بعض الخلايا التي لم يتم تحديد الخاصية الخطية. أعتقد أن مثل هذه المستندات قد تنتج عن تصدير البيانات من تطبيقات أخرى. على سبيل المثال ، يمكن لمنتجات 1C تصدير البيانات إلى Excel. باختصار ، مثل هذا الوضع ممكن. - مفكرة.

لذلك ، يمكنك تحديد المنطقة المحفوظة (في مثالنا ، هذه هي الأعمدة الثلاثة الأولى من الجدول ، الأسطر من 4 إلى 21) ، انقر فوق الزر الذي قمت بإنشائه ، وحدد اسم الملف ، ويتم حفظ الملف. ماذا تفعل به بعد ذلك؟

توليد صفحة HTML من البيانات المصدرة

يمكنك فعل ما تريد باستخدام هذا الملف ، لأن تنسيقه معروف لنا تمامًا (من الجيد معرفة ذلك). سأقدم مثالاً على إنشاء صفحة HTML.

كما قلت ، أقترح نص Perl:

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

3: # استخدام صارم ؛

5: # my ($ TRUE، $ FALSE) = ("True"، "False")؛

6: ($ TRUE، $ FALSE) = ("True"، "False")؛

8: الكمية الفرعية (

9: t $ = التحول ؛

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

11: إرجاع $ t؛

12: }

14: سلسلة 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: بلدي @ f = انقسام / \ x09 / ؛

55: my $ lh = shiftf ؛

56: my ($ name، $ usd، $ rub) = map ()f؛

57: إذا ($ lh) (

58: if ($ name-> eq $ TRUE) (# عنوان قسم المعالجة

59: طباعة "

\ ن "؛

62 :) else (# معالجة خط عادي

63: طباعة<<"TEXT" .

64:

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

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

\ ن \ ن \ ن "؛

80: }

81: طباعة<<"TEXT";

82:

83:

84: نص

85 :) آخر (

86: تحذير "السطر المخفي:". اسم $ ->. "\ N"؛

87: }

88: }

90: طباعة<<"TEXT";

91:

قائمة أسعار شركة معينة
اسم المنتج سعر
cu فرك.
" .

60: اسم $->.

61: "

67: نص

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

69: qtstring ($ name->).

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

71: ف ف |

| .

72: (دولار أمريكي-> مكافئ 

TRUE $؟ " ":"") .

73: الكمية ($ ->).

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

75: ف ف |

| .

76: (فرك دولار-> مكافئ 

TRUE $؟ " ":"") .

77: qtnum (فرك دولار>).

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 الصفوف المخفية ، لأنه يمكن إزالتها بالفعل في مرحلة التصدير؟ يرفع القبعة إلى انتباه القارئ (على أمل سرًا في لفتة متبادلة لتمييزي). إن الاحتفاظ بالخطوط المخفية ليس ضروريًا على الإطلاق ، فأنا معتاد على حفظ كل شيء. الأسباب؟ قد لا تزال بحاجة إلى خطوط مخفية. أو قد ترغب في معرفة الأسطر التي تم تجاهلها بالضبط (سكربت Perl الخاص بي ، كما تتذكر ، يذكر كل سطر مخفي). بالإضافة إلى ذلك ، يمكن أن تكون معلومات ارتفاع السطر معيارًا لتحديد الرؤوس ... على الرغم من أنه يمكنك بالطبع تعديل رمز VB قليلاً وعدم الاحتفاظ بالخطوط المخفية.

نص بيرل

بالطبع ، من المرجح أن تقوم بتغيير كود HTML بأكمله (وهذا هو معظم النص البرمجي). بالطبع ، سيتعين عليك تغيير عدد الأعمدة ، الرأس ، فسيقوم العديد بإزالة الأسطر الفاصلة الفارغة من كود HTML ، وإضافة جداول متداخلة ، وتغيير وظائف DHTML ، وإضافة جداول CSS ... لكن هذا ليس هو الأهم و ليس تغييرا جوهريا.

على الأرجح سيتعين عليك "تعليم" هذا البرنامج النصي لتقسيم المستندات الكبيرة إلى أقسام وحفظ هذه الأقسام في ملفات مختلفة ، لأن قائمة الأسعار الخاصة بشركة متوسطة جدًا بتنسيق HTML يمكن أن تسحب مئات الكيلو بايتات. لن ينتظر كل متجول على الويب حتى ينتهي تنزيل مثل هذا المستند. قد ترغب في إضافة فرز (إذا كان يجب أن تظهر العناصر الموجودة في قائمة الأسعار المطبوعة وفي قائمة أسعار الويب بترتيب مختلف).

مما لا شك فيه أن وظيفة مقارنة السعر الحالي بالسعر السابق ستكون مفيدة ، والتي ستضيف معلومات حول التحديثات وديناميكيات الأسعار.

أنصحك بتنظيم مثل هذه الإجراءات (التي لا تتعلق مباشرة بتخطيط 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 كملف صفحة ويب ذات ملف واحد(صفحة الويب في هذا الملف) ، لذا تأكد من حفظها كملف صفحة على الإنترنت(صفحة على الإنترنت). لا يتم دعم المخططات الشريطية وأشرطة الألوان ومجموعات الرموز بواسطة تنسيقات صفحة الويب.
  • استدارة أو الخامسنص عموديغير معتمد عند تصدير البيانات من Excel إلى تنسيق صفحة الويب. سيتم تحويل أي نص تم تدويره أو رأسي في المصنف إلى نص أفقي.

5. أكثر الصعوبات شيوعاً عند تحويل ملفات Excel إلى HTML

عند تحويل مصنف Excel إلى صفحة ويب ، قد تواجه الصعوبات المعروفة التالية.

في بعض الأحيان يأتي المدير ويقول: - أريد أن أرى هذا الجدول على الموقع.
ويترك.
يظهر مساران قياسيان:
- إما من خلال لوحة تحكم معينة في المحرر ، قم بنحت جدول واملأه بالقيم ؛
- إما باستخدام المقابض مباشرة في لغة تأشير النص الفائق وتعبئتها أيضًا بالقيم.
ولا بأس إذا كان هناك 3 × 5 خلايا ، ولكن إذا كان هناك المزيد.

في مواجهة هذا الأمر قبل بضع سنوات ، اكتشفت طريقة تعتمد على استخدام Windows Live Writer (برنامج لكتابة وإرسال المنشورات إلى بعض منصات التدوين).

انه سهل. الصق الجدول المنسوخ في WLW باستخدام عجينة خاصة ، مع الحفاظ على التنسيق

ثم انتقل إلى علامة التبويب السفلية "المصدر" في WLW وانسخ من الحقل كل الشفرة الضخمة

اتضح بهذه الطريقة أو تقريبًا كما هو الحال في الأصل. يستغرق الوقت ثوانٍ ، باستثناء التكاليف غير المتكررة لإرفاق WLW ببعض حسابات المدونة.
مثال هنا هو codepen

نتيجة لذلك ، نحصل على صفحة واحدة بها 320 سطرًا من النص.

هناك ما زلت بحاجة إلى العثور على ما تحتاج إلى استخدامه ...

على سبيل المثال ، لنأخذ جدول بيانات Excel يتكون من 4 أعمدة و 12 صفًا.
العمود أ - ترقيم العناصر بترتيب تصاعدي لأسطر العناصر
العمود ب - عدد العناصر
العمود ج - سعر عنصر واحد
العمود د - مجموع تكلفة العناصر في سطر واحد كمنتج لسعر العنصر حسب الكمية
العمود D الخلية D12 - مجموع تكلفة جميع العناصر

وغني عن القول أن الجدول نفسه في الشكل تتفوقملف لا يمكن استيعابهافي مواد الموقع لأسباب متنوعة. من أجل وضعه ، نشره في شكل تمثيل نصي للبيانات ، فهو مطلوب تحويل إلى لغة البرمجةتنسيق متوافق.

أضف أولاً قبل الجدول سطر واحد، مظلل إطار أحمر .
ثم أضف قبل كل عمود من أعمدة الجدول عمود آخر، أضف 4 أعمدة أخرى ، محددة إطارات خضراء .

نتيجة لذلك ، حصلنا على جدول يتكون من 8 أعمدة و 13 صفًا.

في الخلية أ 1في شكل نص نكتبه لغة البرمجةعلامة الجدول


في خلايا النطاق A2-A11قبل كل خلية عمود بفي شكل نص ، اكتب الافتتاحية لغة البرمجةعلامات الصف والخلية
في الخلية أنا 14في شكل نص ، اكتب الختام لغة البرمجةعلامة الجدول

في خلايا النطاق C2-C11 , E2-E11 , G2-G11 قبل كل خلية عمود د , Fو حفي شكل نص ، اكتب الختام والافتتاح لغة البرمجةعلامات الخلية

في خلايا النطاق I2-I13بعد كل خلية عمود حفي شكل نص ، اكتب الختام لغة البرمجةعلامات الخلية والصف

أبعد في الخلايا أ 12و أ 13كنص ، اكتب الافتتاح لغة البرمجةعلامة خط وفتح لغة البرمجةعلامة الخلية مع السمة كولسبانالتسلسل في السلاسل 12 و 13 الأعمدة ب , دو Fفي خلية واحدة

نتيجة لذلك ، سنحصل على جدول مليء بالبيانات الأولية بتنسيق تتفوقتنسيق و علامات HTMLكنص.

المزيد في محرر Excel, حدد الجدول في النطاق A1-I13، في قائمة البرنامج ، حدد الأمر "حفظ باسم"واحفظ التحديد باسم ملف نصي(على سبيل المثال - tabltxt.txt) ، لا يهم الترميز ، يمكنك حفظه في ترميز UTF-8وفي الترميز MS-DOS... سيعرض Excel نافذة تحذير:

اضغط على المفتاح "نعم"وسيعرض Excel نافذة تحذير مرة أخرى:

اضغط على المفتاح "نعم"وسيتم حفظ الجزء المحدد كملف نصي tabltxt.txt

علاوة على ذلك ، يتم نقل مزيد من العمل على التحويل إلى محرر HTML ، من حيث المبدأ ، يمكن القيام بكل شيء آخر بشكل بسيط محرر النص، ولكن الخيار مع محرر HTML أفضل.

فتح الملف tabltxt.txtفي أي محرر نصوص ، حدد كل المحتوى كنص والصقه فيه لغة البرمجةمحرر في وضع HTML... دعنا نحصل على نص مصدر HTML التالي للجدول. يمكنك أيضًا اختيار ملف محفوظ من Excel. الاختلاف الوحيد هو أنه ، اعتمادًا على ترميز الملف المحفوظ ، قد يحتوي على "الآثار"في شكل أحرف إضافية كما ترى في لقطة الشاشة في الخلايا ( " " ).

بعد ذلك ، نحذف كل شيء "الآثار"إن وجد ، وجميع المسافات. نكتب أيضا أسلوب CSSلخلايا الجدول: td (الحشو: 1 بكسل 12 بكسل ؛ محاذاة النص: المركز ؛)نتيجة لذلك ، سوف نحصل على نص HTML الأصلي للجدول بتنسيق HTML. (تظهر لقطة الشاشة كما هي بدون تنسيق HTML الهيكلي كما لو كانت تبدو في محرر نصوص)... في هذا النموذج ، يكون النص المصدر للجدول مناسبًا للاستخدام كملف جداول HTMLالبيانات للنشر في المادة ، لأنها تنسيق HTML بحت.

بعد حفظ الجدول كملف HTML وعرضه في المتصفح ، نحصل على العرض التالي للجدول المحول من تنسيق excel إلى تنسيق HTML.

يتم تقليل معنى جميع الإجراءات المذكورة أعلاه إلى شيء واحد:

1 . شكل قبل كل سطر من جدول إكسل ، سطر HTML والبدء خلايا HTML.
2 . شكل بين أعمدة جدول Excel ونهاية أحدهما وبداية خلية HTML أخرى.
3 . أنشئ بعد كل صف من جدول Excel ، نهاية خلايا وسطر HTML.
4 . شكل في بداية ونهاية جدول Excel ، بداية ونهاية جدول HTML كعلامة جدول.

وغني عن القول أنه للحصول على عرض أكثر ملاءمة لبيانات الجدول ، تحتاج إلى كتابة فئات CSS فيها علامات HTMLصفوف وخلايا الجدول. على سبيل المثال ، مع سمات المسافة البادئة ولون الخط ونمطه والحدود والتصميمات الأخرى. لكن هذا موضوع منفصل لا يتم تناوله في هذه المادة ...