Очень часто возникает необходмость перевести Word'овские таблицы в таблицы HTML-страницы. Это можно сделать вручную, если размеры таблицы не большие. Но что делать, если в таблице сотни (или даже тысячи) ячеек? Набивка вручную может занять полдня при напряженной работе. Скажу прямо - способа получения совершенного HTML-кода из документов Word я не знаю, но знаю последовательность, как за 5-10 минут можно получить чистый код даже из огромной таблицы.
Для примера создадим в Word таблицу 2х2 и скопируем ее в любой WYSYWIG-редактор (например,
FCKeditor, чтобы посмотреть получаемый код. Как правило, мы имеем вот что:
Code:<p>
<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr style="mso-yfti-irow: 0">
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 239.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="319">
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><o:p><font face="Times New Roman" size="3"> </font></o:p></p>
</td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 239.3pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" width="319">
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><o:p><font face="Times New Roman" size="3"> </font></o:p></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 239.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="319">
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><o:p><font face="Times New Roman" size="3"> </font></o:p></p>
</td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 239.3pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="319">
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><o:p><font face="Times New Roman" size="3"> </font></o:p></p>
</td>
</tr>
</tbody>
</table>
</p>
Неслабо, скажем прямо.
В том же FCKeditor'е есть кнопочка "Вставить из Word" с опциями "Игнорировать определения гарнитуры" и "Убрать определения стилей". Воспользовавшись ими, получаем следующий код:
Code:<p>
<table cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td valign="top" width="319">
<div> </div>
</td>
<td valign="top" width="319">
<div> </div>
</td>
</tr>
<tr>
<td valign="top" width="319">
<div> </div>
</td>
<td valign="top" width="319">
<div> </div>
</td>
</tr>
</tbody>
</table>
</p>
Лучше, уже гораздо лучше. Но еще большего эффекта мы добьемся, если вставим нашу таблицу из Word в Wordpad, а уже оттуда в FCKeditor.
Тогда полученный код будет выглядеть так:
Code:<table cellspacing="1" cellpadding="7" width="638" border="1">
<tbody>
<tr>
<td width="50%"> </td>
<td width="50%"> </td>
</tr>
<tr>
<td width="50%"> </td>
<td width="50%"> </td>
</tr>
</tbody>
</table>
Во-втором случае у нас появились ненужные описания в <table>, но в общем код стал значительно компактнее - нет ненужных div'ов, а в свойствах <td> пропали valign="top". Даже на примере маленькой таблицы без данных видно преимущество способа с копированием через Wordpad. Конечно, если таблица огромная, получаемый код будет достаточно "грязным", но его можно за 5-10 минут вычистить в том же Wordpad'е при помощи "Правка" - "Заменить". В чем еще плюс этого способа, так это в том, что нам не потребовалось устанавливать на компьютере никаких дополнительных программ.
Если кто знает другой, более быстрый, способ - поделитесь