Excel => Html

  • Тут может быть ваша реклама

qwertyk43

Турист
21 Май 2005
20
0
8
48
Москва
Credits
0
Привет, можно ли как нибудь экселевский файл жестко привязать к определенным ячейкам в таблице html странички? Т.е например есть хтмл страничка и экселевский файл на сервере - нужно сделать так, что бы я заходил в экселевский файл, менял там данные и они соответсвенно менялись и на хтмл страничке. Как все это завязать? Или хотя бы направьте, где об этом можно почитать!"

Заранее очень благодарен!!!!
 

NetTiger

Турист
25 Дек 2004
49
4
13
Credits
0
Извиняюсь братцы, я малось тормознул и с ходу не вьехал в тему.
Не уловил что файлы на серваке лежат. И прогу получается не ту дал.

Но некоторое время назад на одном из варезников промелькнул PHP скрипт
для подобной цели. Не помню скачал его или нет, но поищу.
 

NetTiger

Турист
25 Дек 2004
49
4
13
Credits
0
а вот есть ещё такое:

описание
Php скрипт парсер файла MS EXEL , сохранённого как таблицы xml и занесение данных в базу Mysql server

PHP:
<?php $i = 0;
/*
**Автор: Иокша СА
http://web-style.h1.ru/
****Определение базы данных

  CREATE TABLE `xml` (
  `id` int(11) NOT NULL auto_increment,
  `c1` varchar(255) default NULL,
  `c2` varchar(255) default NULL,
  `c3` varchar(255) default NULL,
  `c4` varchar(255) default NULL,
  `c5` varchar(255) default NULL,
  `c6` varchar(255) default NULL,
  `c7` varchar(255) default NULL,
  `c8` varchar(255) default NULL,
  `c9` varchar(255) default NULL,
  `c10` varchar(255) default NULL,
  `c11` varchar(255) default NULL,
  `c12` varchar(255) default NULL,
  `c13` varchar(255) default NULL,
  `id_razdel` int(11) default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

*************************************

  */


//****  функция перевода unicoda в рускую кодировку
 function utf8win1251($s){
$out = $c1 = "";
$byte2=false;
for ($c=0;$c<strlen($s);$c++){
$i=ord($s[$c]);
if ($i<=127) $out.=$s[$c];
if ($byte2){
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025){
$out_i=168;
}
else{
if ($new_i==1105){
$out_i=184;
}
else {
$out_i=$new_i-848;
}
}
$out.=chr($out_i);
$byte2=false;
}
if (($i>>5)==6) {
$c1=$i;
$byte2=true;
}
}
return $out;
}
//****


$file='ultra.xml'; include "mysql.php";
// вызыватеся когда встречается открывающийся тэг
function startElement($parser, $name, $attrs) {
    global $i,$ch;
    if($name == "ROW"){
                    $i++;
    }
    if($name == "CELL"){
        $ch = 1;
    }
}
// вызыватеся когда встречается закрывающийся тэг
function endElement($parser, $name) {
}
// данные между откр и закр тегами
function characterData($parser, $data) {
    global $i,$ch,$data_array;
    if($ch == 1){
        $data_array[$i][] = $data;
   //     echo   $data."[$i]<br>";

        $ch = 0;
    }
}
// создаем xml разборщик
$xml_parser = xml_parser_create('UTF-8');
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
//освобождает XML-разборщик
xml_parser_free($xml_parser);

/*
echo "<pre>";
$d=print_r($data_array,'TRUE');
echo "</pre>";
  */


    foreach($data_array as $key => $type)
   {
    //  echo(
    //  "<h2>STR:$key</h2>\n"."<ul>\n");
      $m=0; unset($vb);
   //  $sql="insert into xml.xml  (c1,c2,c3,c4,c5,c6,c7,c9,c10,c11,c12,c13) values (";
       $sql="insert into xml.xml  (";
      foreach($type as $ship)
      {

       //  echo("\t<li>[$m].$ship</li>\n");
          $ship=join(split('\'',$ship),'&quot;') ;
          $ship=join(split('\"',$ship),'&quot;') ;

     //     $ship=join(split('\*',$ship),'') ;
          $vb[]=$ship;
          $m=$m+1;

        }

         for ($i2=0; $i2<$m; $i2++) {
         $vcv=$i2+1;
         $sql=$sql."c".$vcv.",";
         };
          $bn5=strrpos($sql,",");
   $sql=substr($sql,'0',$bn5);
       $sql=$sql.") values (";

         for ($i2=0; $i2<$m; $i2++) {
          $ship2=$vb[$i2] ;
          $sql=$sql."'$ship2',";
         };


           $bn5=strrpos($sql,",");
   $sql2=substr($sql,'0',$bn5);
   $sql2=$sql2.")";

  // echo $sql2."<br>" ;
      $sql2= utf8win1251($sql2);

     $result_id_s = mysql_query ($sql2)or die ("Query failed76\n");
   }
   echo("</ul>\n");




 ?>
_________________



думаю если подшаманить то можно сделать связку Exel=>MySQL=>HTML
 

metrim

Турист
15 Июл 2004
116
2
43
Credits
0
qwertyk43 написал(а):
нужно сделать так, что бы я заходил в экселевский файл, менял там данные и они соответсвенно менялись и на хтмл страничке
При данной постановке задачи это можно решить, только с помощью веб програмирования. Необходимо с помощью HYH (или перла) парсить екселевский файл (приблизительно как в посте выше). Задача довольно сложна и для протого применения (ну например табличка прайса) лучше локально перекидовать ексель в ХТМЛ и уже его закидывать на сайт
Например:
NetTiger написал(а):
Еще раз повторюсь, писать парсер типа:
NetTiger написал(а):
И уж точно минуя этап MySQL :)

Хотелось бы поточнее понять задачу. На сколько я понимаю. нужно просто поддерживать актуальным прайс-лист (или что то еще).
Наконец неплохо ды вообще понять возможности хостинга на котором всему этому вертеться.
 

jonjonson

Турист
4 Мар 2004
145
10
53
52
Credits
0