Excel => Html

qwertyk43

Member
Joined
May 21, 2005
Messages
20
Reaction score
9
Age
48
Location
Москва
Привет, можно ли как нибудь экселевский файл жестко привязать к определенным ячейкам в таблице html странички? Т.е например есть хтмл страничка и экселевский файл на сервере - нужно сделать так, что бы я заходил в экселевский файл, менял там данные и они соответсвенно менялись и на хтмл страничке. Как все это завязать? Или хотя бы направьте, где об этом можно почитать!"

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

NetTiger

Member
Joined
Dec 25, 2004
Messages
49
Reaction score
4
Кидай мыло в личку, вышлю прогу которая как раз это и делает.
 

Scottywel

Platinum
VIP
Joined
Nov 4, 2014
Messages
1,697
Reaction score
670
Age
61
Deposit
$ 305
NetTiger Выклади на обменник... мне тоже нужна)))
 

NetTiger

Member
Joined
Dec 25, 2004
Messages
49
Reaction score
4
Извиняюсь братцы, я малось тормознул и с ходу не вьехал в тему.
Не уловил что файлы на серваке лежат. И прогу получается не ту дал.

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

NetTiger

Member
Joined
Dec 25, 2004
Messages
49
Reaction score
4
а вот есть ещё такое:

описание
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

Member
Joined
Jul 15, 2004
Messages
116
Reaction score
2
qwertyk43 said:
нужно сделать так, что бы я заходил в экселевский файл, менял там данные и они соответсвенно менялись и на хтмл страничке
При данной постановке задачи это можно решить, только с помощью веб програмирования. Необходимо с помощью HYH (или перла) парсить екселевский файл (приблизительно как в посте выше). Задача довольно сложна и для протого применения (ну например табличка прайса) лучше локально перекидовать ексель в ХТМЛ и уже его закидывать на сайт
Например:
NetTiger said:
excel2html3.zip
Еще раз повторюсь, писать парсер типа:
NetTiger said:
Exel=>MySQL=>HTML
И уж точно минуя этап MySQL :)

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

jonjonson

Member
Joined
Mar 4, 2004
Messages
145
Reaction score
28
Age
52
Top