[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP + MySQl -> WORD
kap
Необходимо вывести таблицу из базы в Word
Скачал библиотеку PHPWord
с примерами из Example все нормально работает, пытаюсь вывести данные из базы и записать в ячейку в ворде, пишет ошибку. Может кто подскажет в чем дело?
Этот код не работает, когда пытаюсь открыть вордовский документ пишет, что не может открыть файл из-за проблемм с его содержимым, при этом в $row['CAR'] лежит "Nissan"
$w = ''.$row['CAR'].'';
$table->addCell(2000)->addText("$w");


А вот этот код работает
$w = 'Nissan';
$table->addCell(2000)->addText("$w");
dr.nomore
$w = "\'".$row['CAR']."\'";
$table->addCell(2000)->addText($w);


И вообще, зачем нужны кавычки? Они вам нужны? Хотите вместо Nissan в тексте ячейкм получить 'Nissan'? Если не хотите то пишите прямо

$table->addCell(2000)->addText($row['CAR']);


$w = 'Nissan' означает что в $w будет Nissan.
когда в $row['CAR'] - Nissan - значит там Nissan, а не 'Nissan'
kap
Цитата (dr.nomore @ 11.11.2013 - 23:53)
$w = "\'".$row['CAR']."\'";
$table->addCell(2000)->addText($w);


И вообще, зачем нужны кавычки? Они вам нужны? Хотите вместо Nissan в тексте ячейкм получить 'Nissan'? Если не хотите то пишите прямо

$table->addCell(2000)->addText($row['CAR']);


$w = 'Nissan' означает что в $w будет Nissan.
когда в $row['CAR'] - Nissan - значит там Nissan, а не 'Nissan'

Я уже по всякому пробовал, и с кавычками и без
сделал как у вас. В ворде получаются пустые ячейки
kaww
Предположу, что кодировки скрипта и данных в базе различны. Т.е. если, например, в базе данные в windows-1251 а скрипт (и создаваемый .док файл) в utf-8, то попробуйте
$table->addCell(2000)->addText(iconv('windows-1251', 'utf-8', $row['CAR']));


P.S. хотя если в $row['CAR'] только латиница, то скорее всего проблема не в этом
kap
kaww, спасибо огромное, кодировка помогла
kap
еще подскажите, как правильно будет объединить

$a = $row['A'];
$b = $row['B'];
$c = $row['C'];

$d должно быть
слово_A
слово_B
слово_C

Если не трудно, подскажите
kap
сделал объединение с помощью implode
$arr = array($row['A'], $row['B'], $row['C']);
$str = implode(" ", $arr);

только получается все в одну строку
если потом пишу
$table->addCell(2000)->addText(iconv('windows-1251', 'utf-8', $str));

то слова не переносятся каждая с новой строки, пробовал в качестве разделителя при имплоде использовать /n, но оно так потом в ворд и переносится
kap
нашел нормальную документацию по phpWord все сделал, всем спасибо за помощь
dr.nomore
Цитата (kap @ 12.11.2013 - 09:02)
еще подскажите, как правильно будет объединить

$a = $row['A'];
$b = $row['B'];
$c = $row['C'];

$d должно быть
слово_A
слово_B
слово_C

Если не трудно, подскажите

select concat( a, " ",  b, " ", c) as d --- и далее по тексту запроса
dr.nomore
Цитата
iconv


эвфемизм от jopa.

Кодировку задавайте в интерфейсе БД (в коннекте к БД) и вам выдадут сразу нормальный текст.
TranceIT
Я может не совсем понимаю суть задачи, но не проще сделать экспорт данных в CSV и открывать экселем?

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
kap
отчет по авто формируется в ворде по шаблону
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.