Привет всем. С помощью библиотеки PHPExcel выгружаю данные из базы в файл Excel. Все бы хорошо, только вот вместо русских слов в ячейку прописывается ("ЛОЖЬ"). C англ. проблем нет. Вот собственно действующий пример: http://missatomstroy.ru/phpexcel.php?do=1 Пробовал делать как написано в документации: Код (PHP): $locale = 'ru'; $validLocale = PHPExcel_Settings::setLocale($locale); if (!$validLocale) { echo 'Unable to set locale to '.$locale." - reverting to en_us<br />\n"; } Не помогло. В чем может быть проблема? Вот полностью скрипт Код (PHP): <?php //Скачать библиотеку - http://phpexcel.codeplex.com/ //Нашел русскую документацию - http://www.cyberforum.ru/php-beginners/thread1074684.html //Подключаем скачаную библиотеку /** Error reporting */ include("php-excel/Classes/PHPExcel.php"); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); date_default_timezone_set('Europe/Moscow'); $locale = 'ru'; $validLocale = PHPExcel_Settings::setLocale($locale); if (!$validLocale) { die ("No valid locale".$locale); } if($_GET['do']==1){ //Запрос и выборка данных из базы //В моем примере я подключаюсь к базе MS SQL //В Вашем примере вы указываете свое подключение MySQL\MS SQL\Postgree... /* проверка соединения */ if ($mysqli->connect_errno) { printf("Соединение не удалось: %s\n", $mysqli->connect_error); exit(); } $sql = "select `surname`, `name`, `patronymic` from `participants`"; if ($result = $mysqli->query($sql)) { $l = array(); /* извлечение ассоциативного массива */ while ($r = $result->fetch_assoc()) { $l[] = $r; } //------------------------------------ //1 Часть: запись в файл //Создание объекта класса библиотеки $objPHPExcel = new PHPExcel(); //Указываем страницу, с которой работаем (листы Excel) $objPHPExcel->setActiveSheetIndex(0); //Получаем страницу, с которой будем работать $active_sheet = $objPHPExcel->getActiveSheet(); //Создание новой страницы(пример) //$objPHPExcel->createSheet(); //Ориентация и размер страницы // $active_sheet->getPageSetup() // ->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT); // портретная ориентация $active_sheet->getPageSetup() ->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); // Ориентация страницы $active_sheet->getPageSetup() ->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); // размер страницы формат А4 //Имя страницы Excel $active_sheet->setTitle("Заявки"); //Ширина стобцов (указываем букву столбца и ширину в пикселях) $active_sheet->getColumnDimension('A')->setWidth(20); $active_sheet->getColumnDimension('B')->setWidth(20); $active_sheet->getColumnDimension('C')->setWidth(50); //Объединение ячеек (указываем диапазон объединения ячеек) $active_sheet->mergeCells('A1:C1'); //Высота строки (также как и ширина столбцов указывается высота строки в пикселях) $active_sheet->getRowDimension('1')->setRowHeight(30); //Вставить данные(примеры) //Нумерация строк начинается с 1, координаты A1 - 0,1 $active_sheet->setCellValueByColumnAndRow(0, 1, 'Сегодня '.date('d-m-Y')); $active_sheet->setCellValue('A3', 'Фамилия'); $active_sheet->setCellValue('B3', 'Имя'); $active_sheet->setCellValue('C3', 'Отчество'); //Вставка данных из выборки $start = 4; $i = 0; foreach($l as $row_l){ $next = $start + $i; $active_sheet->setCellValueByColumnAndRow(0, $next, $row_l['surname']); $active_sheet->setCellValueByColumnAndRow(1, $next, $row_l['name']); $active_sheet->setCellValueByColumnAndRow(2, $next, $row_l['patronymic']); $i++; }; //Сохраняем файл с помощью PHPExcel_IOFactory и указываем тип Excel $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); //Отправляем заголовки с типом контекста и именем файла header('Content-Type:application/vnd.ms-excel'); header('Content-Disposition:attachment;filename="applications.xlsx"'); ob_end_clean(); //Отправляем файл $objWriter->save('php://output'); /* удаление выборки */ $result->free(); } /* закрытие соединения */ $mysqli->close(); }; ?> PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Может попробовать явно указать тип string setValueExplicit https://github.com/PHPOffice/PHPExcel/blob/7ced78b0be53cf11 ... l.php#L220
не помогает Добавлено спустя 51 минуту 54 секунды: Все решилось следующим образом: Код (Text): $mysqli->set_charset("utf8"); Всем спасибо.