Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 48

Кодировка Excel

30.09.2013, 23:46. Показов 7121. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Помогите пожалуйста решить проблему.
Код работает но кириллица вообще не выводится в Excel то есть если вместо 'Дата' написать 'Date' то в таблицу выведет а если 'Дата' просто пустая ячейка.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
require_once('PHPExcel.php');
require_once('PHPExcel/Writer/Excel5.php');
$xls = new PHPExcel();
$xls->setActiveSheetIndex(0);
$sheet = $xls->getActiveSheet();
$sheet -> setTitle('Report');
$sheet->setCellValue("A1",'Дата');
 
 
header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" );
header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" );
header ( "Cache-Control: no-cache, must-revalidate" );
header ( "Pragma: no-cache" );
header ( "Content-type: application/vnd.ms-excel" );
header ( "Content-Disposition: attachment; filename=matrix.xls" );
 
 
// Выводим содержимое файла
 $objWriter = new PHPExcel_Writer_Excel5($xls);
 $objWriter->save('php://output');
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.09.2013, 23:46
Ответы с готовыми решениями:

Excel кодировка
В продолжении темы: https://www.cyberforum.ru/1c/thread801127.html В общем у меня при поиске из екселя получает вот такой текст, а мне...

Русская кодировка в Excel
Привет! Ребят, нужна ваша помощь. Написал один макрос на VBA. Протестировал его в Excel 2013 на двух компьютерах все работает корректно....

Кодировка UTF-8 в Excel
Прислали файл .csv. При открытии вижу непонятные символы. Через excel данные-получение внешних данных-из текста проверил кодировку -...

7
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
01.10.2013, 13:50
Проверьте кодировку php файла.

Вот мой код с использованием той же библиотеки и русского языка (кодировка UTF-8 без BOM)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
$header=array('№ п/п', 'Дата '.(($_REQUEST['mode'] == 'money') ? 'оплаты' : 'доставки').' заказа', '№ заказа', 'Дата оформления заказа', 'Филиал', 'Сумма', 'Тип оплаты', '№ карты лояльности', 'Оператор', 'Курьер');
  
  require_once('libraries/PHPExcel/PHPExcel.php');
  $objPHPExcel = new PHPExcel();
  $worksheet = $objPHPExcel->getActiveSheet();
  $c = 1;
  $worksheet->fromArray($header, null, 'A'.$c);
  foreach($shippings as $shipping){
    $c++;
    $line = array();
    $line[] = $shipping->id;
    $line[] = DateTimeFormat($shipping->datetime);
    $line[] = $shipping->order->id;
    $line[] = DateTimeFormat($shipping->order->datetime[0]);
    $line[] = $shipping->GetFilial();
    $cargos = TOrderCargo::ListFromOrder($db, $shipping->order);
    $full = 0;
    foreach($cargos as $cargo){
      $price_sum = $cargo->price * $cargo->count;
      $full += $price_sum;
    }
    $s = 0;
    if(($full > 0)and($full < 1000)){ $s += 1; }
    if($shipping->order->pay_method == 2){ $s += 1; }
    $full += 200 * $s;
    if($shipping->order->discount > 0){ $full -= $shipping->order->discount / 100 * $full; }
    $line[] = NumberToText($full, false, 2 , '.');
    $line[] = $shipping->order->GetPayMethod();
    $line[] = $shipping->order->card;
    $line[] = $shipping->order->operator->name;
    $line[] = $shipping->courier->name;
    $worksheet->fromArray($line, null, 'A'.$c);
  }
  
  $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  header('Content-Type: application/vnd.ms-excel');
  header('Content-Disposition: attachment;filename="analytic_'.$_REQUEST['mode'].'_'.$_REQUEST['period'].'.xls"');
  header('Cache-Control: max-age=0');
  $objWriter->save('php://output');
0
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 48
01.10.2013, 14:38  [ТС]
Спасибо за ответ, но когда меняю кодировку на utf-8 в excel выводятся непонятные символы пробовал менять и кодировку эксель файла и php всеровно не выходит.
0
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 48
31.10.2013, 22:04  [ТС]
Здравствуйте. Подскажите пожалуйста. Я когда сохраняю excel файл на диск то есть в программе у меня
PHP
1
2
 $objWriter = new PHPExcel_Writer_Excel5($xls);
 $objWriter->save('otchet.xls');
я открываю его все нормально
но если делаю что бы файл открывать через браузер

PHP
1
2
3
4
5
6
7
8
9
10
 header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" );
 header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" );
 header ( "Cache-Control: no-cache, must-revalidate" );
 header ( "Pragma: no-cache" );
 header ( "Content-type: application/vnd.ms-excel;charset=utf-8;" );
 header ( "Content-Disposition: attachment; filename=matrix.xls" );
 
 // Выводим содержимое файла
 $objWriter = new PHPExcel_Writer_Excel5($xls);
 $objWriter->save('php://output');
у меня в файле набор непонятных символов. Файл php у меня в кодировке utf-8.
0
127 / 127 / 25
Регистрация: 20.11.2009
Сообщений: 498
01.11.2013, 09:57
В браузере тоже файл открывается в utf-8?
Проверьте это
Цитата Сообщение от seka-s79 Посмотреть сообщение
header ( "Content-type: application/vnd.ms-excel;charset=utf-8;" );
Это рекомендация для браузера, но не жесткое условие
0
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 48
01.11.2013, 10:21  [ТС]
В смысле как проверить если можно немного конкретней пожалуйста.
Здесь еще вот, что я когда файл с браузера сохраняю а потом в NotePad перекодирую в windows-1251 то потом тоже нормально. Но я пробовал ставить вместо utf-8 windows-1251 все равно кракозябли вылазят. Уже два дня вожусь с этой проблемой. Что делать?
0
127 / 127 / 25
Регистрация: 20.11.2009
Сообщений: 498
01.11.2013, 10:27
Где-то упустили момент с кодировкой, возможно
PHP
1
2
$objWriter = new PHPExcel_Writer_Excel5($xls);
$objWriter->save('php://output');
Здесь по умолчанию формат cp1251
0
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 48
01.11.2013, 10:35  [ТС]
Но я в хэде указываю
PHP
1
header ( "Content-type: application/vnd.ms-excel;charset=utf-8;" );
как еще можно изменить кодировку?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.11.2013, 10:35
Помогаю со студенческими работами здесь

Кодировка в Excel-файле
Добрый день. Не подскажите такой вопрос - Есть файл Excel, в нем в некоторых ячейках встречаются символы, которые при клике дают это - . Я...

export to excel и кодировка
Доброго времени суток всем. Проблема такая: экспортирую GridView в exel. Класс конвертор построчно добавляет строки в HtmlTextWriter...

Неправильная кодировка в Excel
Добрый день, может кто подсказать, есть таблица Excel в ней очень большая база при открытии файла самый нужный столбец полная абра...

Кодировка. Запись из Stringgrid в Excel
Привет! Как записать в excel русскими буквами? procedure TForm1.Button2Click(Sender: TObject); Var ExcelApp, ExcelSheet, ...

Кодировка и разбивка строки в Excel
Пробую разбить строку в ячейке A1 на первом листе, с помощью VBA. Строка получена из csv файла, с помощью импорта, при импорте выбирается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru