Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2018, 11:02   #11
andriushka
Пользователь
 
Регистрация: 05.04.2017
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Массив желательно бы проиндексировать ассоциативными ключами, типа:
Код:
$arrayy[] = array(
    'fio' => $fio,
    'city' => $cityy,
    // ... etc
Затем для перебора этого массива использовать foreach:
Код:
foreach ($arrayy as $row){
    $objPHPExcel->getActiveSheet()->setCellValue('A'.$j , $row['fio']);
    $objPHPExcel->getActiveSheet()->setCellValue('B'.$j , $row['city']);
    // ... etc
}
если раскомментировать вывод об ошибках то выдается следующее
Warning: require_once(PHPexcel/Writer/Excel2007.php): failed to open stream: No such file or directory in /var/www/vhosts/test.edu22.info/httpdocs/script.php on line 6

Fatal error: require_once(): Failed opening required 'PHPexcel/Writer/Excel2007.php' (include_path='.:/opt/plesk/php/7.0/share/pear') in /var/www/vhosts/test.edu22.info/httpdocs/script.php on line 6

Менял версию php,но без результатно

Сейчас еще эти исчезли,появилась вот такая
Fatal error: Interface 'PHPExcel_Writer_IWriter' not found in /var/www/vhosts/test.edu22.info/httpdocs/PHPExcel/Writer/Excel2007.php on line 37
andriushka вне форума Ответить с цитированием
Старый 30.01.2018, 11:13   #12
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от andriushka Посмотреть сообщение
Warning: require_once(PHPexcel/Writer/Excel2007.php): failed to open stream: No such file or directory in /var/www/vhosts/test.edu22.info/httpdocs/script.php on line 6

Fatal error: require_once(): Failed opening required 'PHPexcel/Writer/Excel2007.php' (include_path='.:/opt/plesk/php/7.0/share/pear') in /var/www/vhosts/test.edu22.info/httpdocs/script.php on line 6
Неправильно указан путь к подключаемому файлу.
Andkorol вне форума Ответить с цитированием
Старый 30.01.2018, 11:24   #13
andriushka
Пользователь
 
Регистрация: 05.04.2017
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Массив желательно бы проиндексировать ассоциативными ключами, типа:
Код:
$arrayy[] = array(
    'fio' => $fio,
    'city' => $cityy,
    // ... etc
Затем для перебора этого массива использовать foreach:
Код:
foreach ($arrayy as $row){
    $objPHPExcel->getActiveSheet()->setCellValue('A'.$j , $row['fio']);
    $objPHPExcel->getActiveSheet()->setCellValue('B'.$j , $row['city']);
    // ... etc
}
а вот сейчас вообще вот так,добавил только строчку include_once ('PHPExcel.php'); и вот такое
Fatal error: Uncaught exception 'Exception' with message 'Invalid cell coordinate A' in /var/www/vhosts/test.edu22.info/httpdocs/PHPExcel/Cell.php:508 Stack trace: #0 /var/www/vhosts/test.edu22.info/httpdocs/PHPExcel/Worksheet.php(959): PHPExcel_Cell::coordinateFromString ('A') #1 /var/www/vhosts/test.edu22.info/httpdocs/PHPExcel/Worksheet.php(860): PHPExcel_Worksheet->getCell('A') #2 /var/www/vhosts/test.edu22.info/httpdocs/script.php(51): PHPExcel_Worksheet->setCellValue('A', NULL) #3 {main} thrown in /var/www/vhosts/test.edu22.info/httpdocs/PHPExcel/Cell.php on line 508
andriushka вне форума Ответить с цитированием
Старый 30.01.2018, 11:44   #14
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Рекомендую перестать писать код «методом тыка».
Вместо этого нужно внимательно изучить многочисленные примеры использования PHPExcel для различных задач – и выбрать из них подходящий.
Вообще, желательно переключиться уже на более новую версию: PhpSpreadsheet.
Andkorol вне форума Ответить с цитированием
Старый 02.02.2018, 05:05   #15
andriushka
Пользователь
 
Регистрация: 05.04.2017
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Рекомендую перестать писать код «методом тыка».
Вместо этого нужно внимательно изучить многочисленные примеры использования PHPExcel для различных задач – и выбрать из них подходящий.
Вообще, желательно переключиться уже на более новую версию: PhpSpreadsheet.
в какой то степени да,метод тыка присутствует,просто эти все этапы ранее по отдельности работали,но вот задача встала объединить их и тут возникли трудности.В принципе,почти работает как надо,но вот надо добавить еще 1 этап,это чтобы файл брался не из дирректории сайта а подгружался.Делаю следующим образом,но при переходе на script.php просто белая страница:
Код:
<html>
<head>
        <meta charset="UTF-8">
        <title>Сервис проверки сайта</title>
</head>

<body>

<form method="post" action="script.php" enctype="multipart/form-data">
<input type="file" id="filename" name="filename">
<input type="submit" name="submit" id="submit" value="Загрузить">
</form>

</div>
</body>
</html>
и вот script.php
Код:
<?php
//if(isset($_POST['submit'])){
header("Content-Type: text/html; charset=utf-8");

if($_FILES["filename"]["size"] > 1024*3*1024)
   {
     echo ("Размер файла превышает три мегабайта");
     exit;
   }

if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
   {
     move_uploaded_file($_FILES["filename"]["tmp_name"],"/var/www/vhosts/test.edu22.info/httpdocs/files/".$_FILES["filename"]["name"]);
   } else {
      echo("Ошибка загрузки файла");
   }

if(isset($_POST['submit'])){
include_once ('PHPExcel.php');
require_once ('/var/www/vhosts/test.edu22.info/httpdocs/PHPExcel/Writer/Excel2007.php');

function readExelFile($filepath){
        require_once 'PHPExcel.php';
    $ar=array();
$inputFileType = PHPExcel_IOFactory::identify($filepath);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($filepath);
$ar = $objPHPExcel->getActiveSheet()->toArray();
   return $ar;
}

$file_path_excel = 'files/'.$_FILES["filename"]["name"];

$ar=readExelFile($file_path_excel);

foreach($ar as $ar_colls){
$fio = $ar_colls[0];
$cityy = $ar_colls[1];
$year = str_replace(array('http://', 'https://', '/'), '', $ar_colls[2]);

    $ip = gethostbyname($year);
    $result = file_get_contents("http://ipgeobase.ru:7020/geo?ip=".$ip);
    $xml = new SimpleXMLElement($result);

$arrayy[] = array(
    'number' => $fio,
    'oo' => $cityy;
    'adress' => $year,
    'country' => $xml->ip->country,
    'city' => $xml->ip->city,
);
}

$j=1;
$pattern = 'works.xlsx';
$objPHPExcel = PHPExcel_IOFactory::load($pattern);
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objPHPExcel->setActiveSheetIndex(0);

        foreach($arrayy as $row)
        {
                                $objPHPExcel->getActiveSheet()->setCellValue('A'.$j, $row['number']);
                                $objPHPExcel->getActiveSheet()->setCellValue('B'.$j, $row['oo']);
                                $objPHPExcel->getActiveSheet()->setCellValue('C'.$j, $row['adress']);
                                $objPHPExcel->getActiveSheet()->setCellValue('D'.$j, $row['country']);
                                $objPHPExcel->getActiveSheet()->setCellValue('E'.$j, $row['city']);
                                $j++;
        }
        $outputFileName = "result.xlsx";
        $objWriter->save($outputFileName);
        $objPHPExcel->disconnectWorksheets();
        unset($objPHPExcel);
        header("Location: " .$outputFileName );
        ob_end_flush();
}
?>
andriushka вне форума Ответить с цитированием
Старый 02.02.2018, 10:33   #16
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от andriushka Посмотреть сообщение
Делаю следующим образом,но при переходе на script.php просто белая страница
Как найти ошибку в своем коде?
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли обработать данные из примечания? Тандер Microsoft Office Excel 19 05.11.2012 14:04
Текстовый файл с числами - обработать и записать в другие два файла (Delphi) Sweet-_-Orange Помощь студентам 10 15.01.2012 21:36
Считать и обработать данные из файла EXCEL CJ ALEX R Помощь студентам 4 14.08.2011 13:04
FASM. Считать содержимое файла в строку и затем записать обратно в файл Zart Помощь студентам 0 19.04.2011 17:02
Прочесть данные с сайта nix01d Общие вопросы Delphi 3 15.04.2010 11:26