Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Excel -> HTML


Автор: iddqd 25.6.2007, 10:52
Необходимо преобразовать таблцу из Экселя в нормальный хтмл.
1. Сейчас пишет коды символов вместо букв, а надо буквы.
2. Пишет стиль для каждой ячейки по сто раз. Страница становиться огромной.

Как это реализовать? Возможна ли хоть какая-нибудь автоматизация процесса?

Автор: BuShaRt 28.6.2007, 14:31
iddqd, 
Надо писать свой интрипритатор, или использоваться чужие...

Алгоритм:
1. Парситься xls файл.
2. На основе полученных данных создаеться html  страничка.

Автор: sh_iv 29.6.2007, 17:04
iddqd, 
ну как автоматизировать можно...
Есть такая функция "Найти и заменить". Вот то, что откровенно лишнее он добавляет (мусора-то он много засунет) ищите и заменяете на пустоту. 
Потом делаете то же для стилей, а в таблице стилей создаёте стиль для td.

Автор: Str!pe 29.6.2007, 18:39
Цитата(BuShaRt @  28.6.2007,  14:31 Найти цитируемый пост)
Надо писать свой интрипритатор, или использоваться чужие...

Круто! Зачет!

iddqd, 
Такая тема на моем веку уже поднималась в этом разделе. Попробуйте поискать.

Автор: kit_kat 29.6.2007, 19:15
Я обычно клиентские прайсы перевожу так:
пишу макрос (если структура таблицы не очень простая)-перевод содержимого в тестовый файл  со своими разделителями между данными, если простая- можно просто сохранить в формат cvs, но там разделитель ";" иногда мешает для данных

потом на php достаю файл и по разделителям восстанавливаю таблицу.


Автор: Str!pe 29.6.2007, 23:02
Цитата(iddqd @  25.6.2007,  10:52 Найти цитируемый пост)
Необходимо преобразовать таблцу из Экселя в нормальный хтмл.

Это ты сам делать будешь или пользователи? Если сам то зайди http://www.google.ru/search?hl=ru&q=Excel+to+HTML&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr= первые три строчки выдачи.

Автор: BuShaRt 30.6.2007, 21:18
Аналог..

http://php.com.ua/ru/files/scripts/excel-reader.zip

Код

$name = 'xlsFile.xls';
require_once 'class/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->read($name);
$html = '<table  border="0" cellpadding="3" cellspacing="1" bgcolor="#848282" align="left">
<tr align="left" bgcolor="#696969">
    <td >Наименование</td>
    <td>Цена</td>
</tr>
        ';
        for ($i = 12; $i <= $data->sheets[0]['numRows']; $i++) {
            if (in_array($data->sheets[0]['cells'][$i][1], $titles)) {
                $html .= '
<tr align="left" bgcolor="#A9A9A9">
    <td >'.$data->sheets[0]['cells'][$i][1].'</td>
    <td>-</td>
</tr>
                ';        
                continue;
            }
            $html .= '
<tr align="left" bgcolor="#ffffff">
    <td >'.$data->sheets[0]['cells'][$i][1].'</td>
    <td>'.$data->sheets[0]['cells'][$i][4].'</td>
</tr>
            ';
        }
        $html .= '</table>';
        $file = fopen('price/index.html', "w");
        fwrite($file, $html);
        fclose($file);    

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)