Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Excel_PHP - :(((
 
 автор: ADmexture   (19.06.2005 в 18:52)   письмо автору
 
 

Всем привет!
Есть необходимость периодической конвертации содержимого XLS-файла в HTML-код. Использовать стандарную функцию Exel "сохранить для веб" совершенно невозможно, по причине полной несуразности и размера получаемого кода... Exel лепит полный комплект стилей для _каждой_(!) ячейки и ее содержимого... Размер исходного файла и так не маленький, а получается вообще ни к чему не пригодный.
Вопрос: существует ли способ получения максимально простого HTML кода (т.е. голой таблицы с данными, без стилевого форматирования) из файла формата XLS , c помощью PHP? Все необходимые стили я и так напишу. :)
А пока все приходится все делать ручками... :(

   
 
 автор: cheops   (19.06.2005 в 21:27)   письмо автору
 
   для: ADmexture   (19.06.2005 в 18:52)
 

Обычно сохраняют XLS-лист в виде CSV-файла (это текстовый файл, ячейки в котором разделены ;) - его уже гораздо легче разобрать и переконвертировать хоть в HTML, хоть перебросить в MySQL... Если будут трудности с его разбором обращайтесь - поможем.

   
 
 автор: glsv (Дизайнер)   (20.06.2005 в 20:56)   письмо автору
 
   для: 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 (!
$handleputerrorjs("Ошибка создания файла для сохранения таблицы. <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>&nbsp;&nbsp;";
  echo 
"<a href=# onclick='window.close(); return false'>Закрыть окно</a>";
  exit();
}    
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования