PHP поколение файла Microsoft Excel / экспортируют класс

Я всегда использую window functions для расчета процентов:

Ссылка: http://www.mysqltutorial.org/mysql-window-functions/

Пример : http://sqlfiddle.com/#!17/66373/6

SELECT
  user,
  product,
  c,
  sum(c) over(partition by usr) sc,
  c / sum(c) over(partition by usr) per
FROM (
  SELECT usr, product, count(*) c
   FROM tablex
   GROUP BY usr, product
) t


CREATE TABLE tablex (
  usr varchar(32),
  product varchar(32)
);

INSERT INTO tablex VALUES ('a', 'x');
INSERT INTO tablex VALUES ('a', 'y');
INSERT INTO tablex VALUES ('a', 'y');
INSERT INTO tablex VALUES ('a', 'y');
INSERT INTO tablex VALUES ('a', 'z');
INSERT INTO tablex VALUES ('a', 'z');
INSERT INTO tablex VALUES ('a', 'z');
INSERT INTO tablex VALUES ('a', 'z');
INSERT INTO tablex VALUES ('a', 'z');

INSERT INTO tablex VALUES ('b', 'x');
INSERT INTO tablex VALUES ('b', 'x');
INSERT INTO tablex VALUES ('b', 'x');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'z');
INSERT INTO tablex VALUES ('b', 'z');
INSERT INTO tablex VALUES ('b', 'z');
INSERT INTO tablex VALUES ('b', 'z');
INSERT INTO tablex VALUES ('b', 'z');

5
задан BrynJ 16 May 2009 в 10:08
поделиться

5 ответов

I've discovered that adding the following, under the xml declaration in my generated Excel file, ensures Excel opens the file with an xml file extension (rather than the web browser):

 <?mso-application progid=\"Excel.Sheet\"?>

I'm also setting the following headers in php:

// deliver header (as recommended in php manual)
header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
header('Content-Disposition: attachment; filename="' . $filename . '.xml"');
2
ответ дан 18 December 2019 в 13:18
поделиться
8
ответ дан 18 December 2019 в 13:18
поделиться

Используйте Spreadsheet_Excel_Writer из PEAR

или

Запишите файл в формат CSV .
Но используйте представление Microsoft Excel о csv: точка с запятой (;) в качестве разделителя

2
ответ дан 18 December 2019 в 13:18
поделиться

Вы также отключаете диалоговое окно, используя regedit

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security]
“ExtensionHardening”=dword:00000000
  • Пуск -> Выполнить -> regedit
  • Перейдите в «HKEY_CURRENT_USER \ SOFTWARE \ MICROSOFT \ OFFICE \ 12.0 \ EXCEL \ SECURITY»
  • New DWORD
  • Введите «ExtensionHarnding» в качестве имени и 0 в качестве значения
2
ответ дан 18 December 2019 в 13:18
поделиться

файл имеет другой формат, расширение файла

Пробовали ли вы сохранить файл с другим расширением? Например, "foo.xlsx" вместо "foo.xls".

0
ответ дан 18 December 2019 в 13:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: