HEX
Server: Apache
System: Linux server3230.server-vps.com 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64
User: lzgqnjwu (1002)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/lzgqnjwu/sites/bot.sgt.com.ua/test-phpspreadsheet.php
<?php
/**
 * Тестовий скрипт для перевірки PhpSpreadsheet
 * Завантажте цей файл в корінь проекту і відкрийте в браузері
 * Наприклад: https://bot.sgt.com.ua/test-phpspreadsheet.php
 */

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;

echo "<h1>Тест PhpSpreadsheet</h1>";

// 1. Перевірка встановлення
echo "<h2>1. Перевірка встановлення</h2>";
if (class_exists('PhpOffice\PhpSpreadsheet\IOFactory')) {
    echo "✅ <b>PhpSpreadsheet встановлено успішно!</b><br>";
    echo "Версія: " . \PhpOffice\PhpSpreadsheet\Spreadsheet::VERSION . "<br><br>";
} else {
    echo "❌ <b>PhpSpreadsheet НЕ встановлено!</b><br><br>";
    die();
}

// 2. Перевірка наявності файлів
echo "<h2>2. Перевірка файлів</h2>";

$pricelistPath = __DIR__ . '/storage/web/source/Ukraine_Pricelist.xlsx';
$skladPath = __DIR__ . '/storage/web/source/Sklad.xlsx';

if (file_exists($pricelistPath)) {
    echo "✅ Ukraine_Pricelist.xlsx знайдено<br>";
    echo "Розмір: " . round(filesize($pricelistPath) / 1024 / 1024, 2) . " MB<br>";
} else {
    echo "❌ Ukraine_Pricelist.xlsx НЕ знайдено за шляхом: $pricelistPath<br>";
}

if (file_exists($skladPath)) {
    echo "✅ Sklad.xlsx знайдено<br>";
    echo "Розмір: " . round(filesize($skladPath) / 1024, 2) . " KB<br><br>";
} else {
    echo "❌ Sklad.xlsx НЕ знайдено за шляхом: $skladPath<br><br>";
}

// 3. Тест читання Ukraine_Pricelist.xlsx
if (file_exists($pricelistPath)) {
    echo "<h2>3. Тест читання прайс-листа</h2>";
    
    try {
        $spreadsheet = IOFactory::load($pricelistPath);
        $worksheet = $spreadsheet->getActiveSheet();
        $data = $worksheet->toArray();
        
        echo "✅ Файл успішно прочитано!<br>";
        echo "Кількість рядків: " . count($data) . "<br><br>";
        
        // Показуємо заголовки
        echo "<b>Заголовки таблиці:</b><br>";
        echo "<pre>";
        print_r($data[0]);
        echo "</pre>";
        
        // Показуємо перші 3 товари
        echo "<b>Перші 3 товари:</b><br>";
        echo "<table border='1' cellpadding='5'>";
        echo "<tr>";
        foreach ($data[0] as $header) {
            echo "<th>" . htmlspecialchars($header) . "</th>";
        }
        echo "</tr>";
        
        for ($i = 1; $i <= 3 && $i < count($data); $i++) {
            echo "<tr>";
            foreach ($data[$i] as $cell) {
                echo "<td>" . htmlspecialchars($cell) . "</td>";
            }
            echo "</tr>";
        }
        echo "</table><br>";
        
        // Перевіряємо картинки
        echo "<b>Перевірка картинок (колонка F):</b><br>";
        $imageIndex = 5; // Колонка F
        $imagesFound = 0;
        
        for ($i = 1; $i <= 10 && $i < count($data); $i++) {
            if (!empty($data[$i][$imageIndex])) {
                $imagesFound++;
                echo "Рядок $i: " . htmlspecialchars($data[$i][$imageIndex]) . "<br>";
            }
        }
        
        if ($imagesFound > 0) {
            echo "<br>✅ Знайдено $imagesFound URL картинок у перших 10 рядках<br>";
        } else {
            echo "<br>⚠️ Картинок не знайдено у перших 10 рядках (колонка F пуста)<br>";
        }
        
    } catch (Exception $e) {
        echo "❌ <b>Помилка читання файлу:</b> " . $e->getMessage() . "<br>";
    }
    
    echo "<br>";
}

// 4. Тест читання Sklad.xlsx
if (file_exists($skladPath)) {
    echo "<h2>4. Тест читання складу</h2>";
    
    try {
        $spreadsheet = IOFactory::load($skladPath);
        $worksheet = $spreadsheet->getActiveSheet();
        $data = $worksheet->toArray();
        
        echo "✅ Файл успішно прочитано!<br>";
        echo "Кількість рядків: " . count($data) . "<br><br>";
        
        // Показуємо заголовки
        echo "<b>Заголовки таблиці:</b><br>";
        echo "<pre>";
        print_r($data[0]);
        echo "</pre>";
        
        // Показуємо перші 3 записи
        echo "<b>Перші 3 записи:</b><br>";
        echo "<table border='1' cellpadding='5'>";
        echo "<tr>";
        foreach ($data[0] as $header) {
            echo "<th>" . htmlspecialchars($header) . "</th>";
        }
        echo "</tr>";
        
        for ($i = 1; $i <= 3 && $i < count($data); $i++) {
            echo "<tr>";
            foreach ($data[$i] as $cell) {
                echo "<td>" . htmlspecialchars($cell) . "</td>";
            }
            echo "</tr>";
        }
        echo "</table><br>";
        
    } catch (Exception $e) {
        echo "❌ <b>Помилка читання файлу:</b> " . $e->getMessage() . "<br>";
    }
}

echo "<hr>";
echo "<h2>Підсумок</h2>";
echo "Якщо всі тести пройшли успішно - можете тестувати бота!<br>";
echo "Видаліть цей файл після тестування (test-phpspreadsheet.php)<br>";
?>