|
|
|
| Всем привет!
Есть необходимость периодической конвертации содержимого XLS-файла в HTML-код. Использовать стандарную функцию Exel "сохранить для веб" совершенно невозможно, по причине полной несуразности и размера получаемого кода... Exel лепит полный комплект стилей для _каждой_(!) ячейки и ее содержимого... Размер исходного файла и так не маленький, а получается вообще ни к чему не пригодный.
Вопрос: существует ли способ получения максимально простого HTML кода (т.е. голой таблицы с данными, без стилевого форматирования) из файла формата XLS , c помощью PHP? Все необходимые стили я и так напишу. :)
А пока все приходится все делать ручками... :( | |
|
|
|
|
|
|
|
для: ADmexture
(19.06.2005 в 18:52)
| | Обычно сохраняют XLS-лист в виде CSV-файла (это текстовый файл, ячейки в котором разделены ;) - его уже гораздо легче разобрать и переконвертировать хоть в HTML, хоть перебросить в MySQL... Если будут трудности с его разбором обращайтесь - поможем. | |
|
|
|
|
|
|
|
для: ADmexture
(19.06.2005 в 18:52)
| | Но можно и почистить таблицу, сформированную Excel от мусора.
Ниже пример функции очистки таблицы их Excel
$upload_file - загруженный файл с таблицей
$table_file – сюда сохраняем очищенную таблицу
<?
// Обработка таблицы в формате HTML
function action_html_table($upload_file, $table_file)
{
// Чистка таблицы от мусора
$strfile = file_get_contents($upload_file);
$pos = strpos($strfile,"<style");
$posend = strpos($strfile,"</style>");
$style = substr($strfile,$pos,$posend-$pos+8);
$pos = strpos($strfile,"<table");
$body = substr($strfile,$pos);
$pattern = "/<html[^>]*>|<meta[^>]*>|<link[^>]*>|<head[^>]*>/i";
$style = preg_replace($pattern, "", $style);
$pattern = "/(padding|mso|vertical|white|font-family|color|border|text-decoration|font-size)[^;]*;\s*|/i";
$style = preg_replace($pattern, "", $style);
$pattern = "/style='[^']*'/i";
$body = preg_replace($pattern, "", $body);
$pattern = '/x:num=".*"/i';
$body = preg_replace($pattern, "", $body);
$pattern = '/width|height=\S*/i';
$body = preg_replace($pattern, "", $body);
$pattern = '/<!--.*\\n?.*-->/i';
$body = preg_replace($pattern, "", $body);
$pattern = '/<table[^>]*>/i';
$body = preg_replace($pattern, "<table border=0 cellpadding=1 cellspacing=1 class=arttable>", $body);
$strfile = $style.$body;
///////////////////////
$table_file = "../".$table_file;
$handle = fopen($table_file, "w+");
if (!$handle) puterrorjs("Ошибка создания файла для сохранения таблицы. <br>Имя файла: $table_file");
if (!fwrite($handle, $strfile)) puterrorjs("Ошибка записи файла с таблицей <br>Имя файла: $table_file");
}
// Небольшая вспомогательная функция, которая выводит сообщение об ошибке
function puterrorjs($message)
{
echo("<p class=error>$message</p>");
echo "<a href=# onclick='history.back(); return false'>Вернуться</a> ";
echo "<a href=# onclick='window.close(); return false'>Закрыть окно</a>";
exit();
}
?>
|
| |
|
|
|