За последние 24 часа нас посетили 48792 программиста и 19101 робот. Сейчас ищут 1903 программиста ...

PHP & EXCEL

Тема в разделе "PHP для новичков", создана пользователем Arsenprog, 4 мар 2017.

  1. Arsenprog

    Arsenprog Новичок

    С нами с:
    14 фев 2017
    Сообщения:
    7
    Симпатии:
    0
    Исчезают нули при Импорте к примеру
    Screenshot_1.png
    Делаю загрузку получаю
    Screenshot_4.png
    и конечно сам код
    PHP:
    1. public function create_tmp_table()
    2.     {
    3.         $this->db->query('DROP TABLE IF EXISTS '.$this->tmp_tbl_name);
    4.             $this->db->query('CREATE TABLE '.$this->tmp_tbl_name.' (
    5.            id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    6.            manufacturer int(10) NOT NULL,
    7.            model varchar(32) NOT NULL,
    8.            descr tinytext DEFAULT NULL,
    9.            in_stock tinytext NOT NULL,
    10.            price float(8, 2) UNSIGNED DEFAULT NULL,
    11.            price_new float(8, 2) UNSIGNED NOT NULL DEFAULT "0.00",
    12.            category int(10) NOT NULL,
    13.            PRIMARY KEY (id)
    14.              )
    15.              ENGINE = INNODB
    16.              AUTO_INCREMENT = 1
    17.              CHARACTER SET utf8
    18.              COLLATE utf8_general_ci');
    19.     }
    20.  
    21.     /**
    22.      * Наполнение вр. таблицы
    23.      * @param array $data
    24.      */
    25.     public function fill_tmp_table(array $data)
    26.     {
    27.         $this->db->query(sprintf('INSERT INTO %s SET
    28.        `manufacturer`=%d,
    29.        `model`="%s",
    30.        `descr`="%s",
    31.        `in_stock`=%d,
    32.        `price`=%f,
    33.        `price_new`=`price`,
    34.        `category`="%s"',
    35.             $this->tmp_tbl_name,
    36.             $this->db->escape($data['manufacturer']),
    37.             $data['model'] =  strtoupper(preg_replace('/[^a-zA-Zа-яА-Я0-9_]/u', '', $this->db->escape($data['model']))),
    38.             $this->db->escape($data['descr']),
    39.             $this->db->escape($data['in_stock']),
    40.             $this->db->escape($data['price']),
    41.             $this->db->escape($data['category'])
    42.         ));
    43.     }
    В строке где model у меня стоит регулярка как мне изменить тип значений на текстовый или ваши варианты господа ?

    В интернете я вычитал что можно поступить так
    Пример

    PHP:
    1. $objnewPHPExcel->getActiveSheet()->getCell('A8')->setValueExplicit('', PHPExcel_Cell_DataType::TYPE_STRING)
    но у меня не получается применить такое (
     
  2. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    Определи на каком этапе пропадает 0 - на моменте получения из екселя...

    PHP:
    1. echo $objnewPHPExcel->getActiveSheet()->getCell('A8');
    или в функции fill_tmp_table

    var_dump $data в начале функции поставь ..

    думаю дальше догадаешься =)
     
    #2 Slavka, 4 мар 2017
    Последнее редактирование модератором: 6 мар 2017
    denis01 нравится это.
  3. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    щас сунулся в ексель - возможно это тебе еше явится подсказкой
    PHP:
    1. $sheet->getCell('B1')->getCalculatedValue()
     
    #3 Slavka, 6 мар 2017
    Последнее редактирование модератором: 6 мар 2017