MySQL — получить запись из базы данных и добавить ее в новый файл Excel с помощью Spreadsheet Excel Writer в PHP не работает, почему?

Я признаю, что задавал эти вопросы уже около 4-5 часов назад, но, так как я не получил ответа, я удалил его и спросил снова, надеясь, что кто-то сможет мне помочь … Надеюсь, это нормально … Спасибо! 🙂

У меня проблема; Я могу получить запись из базы данных, я могу создать файл Excel, используя Excel Writer для электронных таблиц, но, очевидно, я не могу сделать оба в комбинации; Вот мой скрипт для получения элемента базы данных:

<?php

require ('config123.php');


$sql = "SELECT name FROM table WHERE id=1";
$query = mysqli_query($db_123, $sql);
$row = mysqli_fetch_assoc($query);


echo $row['name'];

?>

Это прекрасно работает; Также для создания файла Excel с какой-либо записью нет проблем:

<?php

require_once 'Spreadsheet/Excel/Writer.php';
$excelfile = new Spreadsheet_Excel_Writer();

$excelfile->send('excelfile.xls');

$worksheet =& $excelfile->addWorksheet('Tabelle 1');


$worksheet->write(1, 1, 'blub');

$excelfile->close();

?>

Я могу открыть файл Excel, и все отлично работает; Но как только я пытаюсь объединить это, это больше не работает:

require ('config123.php');
require_once 'Spreadsheet/Excel/Writer.php';
$excelfile = new Spreadsheet_Excel_Writer();

$excelfile->send('excelfile.xls');

$worksheet =& $excelfile->addWorksheet('Tabelle 1');


$sql = "SELECT name FROM table WHERE id=1";
$query = mysqli_query($db_123, $sql);
$row = mysqli_fetch_assoc($query);

$worksheet->write(1, 1, 'blub'); // notice that I don't even write the value from the database in it but just a word and it still doesn't work

$excelfile->close();

?>

Чтобы быть более точным, он получает проблемы от двух требуемых опций; Они должны как-то конфликтовать друг с другом, хотя я не знаю, как … Документ Excel создается, но Excel больше не может его открыть, и внутри он полон множества сообщений об ошибках;
Я уже изменил имена в своем файле config123.php, надеясь, что есть только два допустимых имени с тем же именем, но, к сожалению, это не помогло;
Вот как выглядит мой config123.php:

<?php

error_reporting(E_ALL);

define ( 'MYSQL_HOST',      'localhost' );

define ( 'MYSQL_BENUTZER',  'root' );
define ( 'MYSQL_KENNWORT',  '' );

define ( 'MYSQL_DATENBANK', 'database' );

$db_123 = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);

if ($db_123 === False) {
die("<p> Es konnte keine Verbindung mit der Datenbank hergestellt
werden </p>");
}


?>

Я не могу нормально открыть файл Excel, где я на самом деле хотел написать только «blub», однако я могу открыть файл с помощью обычного редактора Windows и получить это (это может помочь):

Устаревшие: Нестатический метод OLE :: Asc2Ucs () не должен вызываться статически, предполагая $ this из несовместимого контекста в C: \ XAMPP \ PHP \ груша \ Электронная таблица \ Excel \ Writer \ Workbook.php онлайн 575

Устаревшие: Нестатический метод System :: tmpdir () не должен вызываться статически, предполагая $ this из несовместимого контекста в C: \ XAMPP \ PHP \ грушевый \ OLE \ ВПР \ file.php онлайн 50

Устаревшие: Нестатический метод System :: tmpdir () не должен вызываться статически, предполагая $ this из несовместимого контекста в C: \ XAMPP \ PHP \ грушевый \ OLE \ ВПР \ Root.php онлайн 56

Устаревшие: Нестатический метод OLE :: Asc2Ucs () не должен вызываться статически, предполагая $ this из несовместимого контекста в C: \ XAMPP \ PHP \ грушевый \ OLE \ ВПР \ Root.php онлайн 59

Устаревшие: Нестатический метод OLE :: LocalDate2OLE () не должен вызываться статически, предполагая $ this из несовместимого контекста в C: \ XAMPP \ PHP \ груша \ OLE \ PPS.php онлайн 190

Устаревшие: Нестатический метод OLE :: LocalDate2OLE () не должен вызываться статически, предполагая $ this из несовместимого контекста в C: \ XAMPP \ PHP \ груша \ OLE \ PPS.php онлайн 191

Устаревшие: Нестатический метод OLE :: LocalDate2OLE () не должен вызываться статически, предполагая $ this из несовместимого контекста в C: \ XAMPP \ PHP \ груша \ OLE \ PPS.php онлайн 190

Устаревшие: Нестатический метод OLE :: LocalDate2OLE () не должен вызываться статически, предполагая $ this из несовместимого контекста в C: \ XAMPP \ PHP \ груша \ OLE \ PPS.php онлайн 191
Сࡠ± á; þÿ þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

        þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ       l    ÉB  ä       Tabelle 1=      ¼%r8      X"    1  È   ÿ      Arial1  È   ÿ      Arial1  È   ÿ      Arial1  È   ÿ      Arial1  È   ÿ      Arial1  È         Arialà      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à      õÿ  À       à          À       à        À       “  € ÿ’ â 8     ÿÿÿ ÿ    ÿ    ÿ ÿÿ  ÿ ÿ  ÿÿ €    €    € €€  € €  €€ ÀÀÀ €€€ ™™ÿ ™3f ÿÿÌ Ìÿÿ f f ÿ€€  fÌ ÌÌÿ   € ÿ ÿ ÿÿ   ÿÿ € € €    €€   ÿ  Ìÿ Ìÿÿ ÌÿÌ ÿÿ™ ™Ìÿ ÿ™Ì Ì™ÿ ÿÌ™ 3fÿ 3ÌÌ ™Ì  ÿÌ  ÿ™  ÿf  ff™ –––  3f 3™f  3  33  ™3  ™3f 33™ 333 …  -      Tabelle 1
l    É     *    +   €          ‚      Á      ƒ    „    &        è?'        è?(        ð?)        ð?¡ "   d       XX      à?      à?
blub>


Снова и снова F FÀ \ é fé \ Ñ @ B o o k
F À F þÿÿÿ þÿÿÿþÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

Есть идеи как это решить ???? 🙁

0

Решение

Уважаемые люди из будущего, которые все еще используют пакет PEAR Spreadsheet_Excel_Writer:

Эти ошибки вызваны пакетом PEAR OLE, в частности версией 1.0.0RC2. Один из способов исправить это — принудительно понизить пакет OLE до RC1:

pear install -f OLE-1.0.0RC1

Для тех, кто также получает ошибку «Call-time pass-by-reference», это можно исправить, обновив код вручную, как предложено здесь:
http://pear.php.net/bugs/bug.php?id=19359

В Spreadsheet / Excel / Writer / Worksheet.php в строке 2490 измените:

$this->_append(&$string, true);

чтобы:

$this->_append($string, true);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]