Как создать документ Excel с несколькими листами из PHP?

Это действительно деталь реализации. Когда-то давно я думал, что это может быть нулевой байт или тысяча байт, что он не имеет никакого отношения к спецификации языка. Но, посмотрев на стандарт (раздел 5.3.3), sizeof определяется как всегда возвращающий один или более, независимо от того, что.

Размер самого производного класса должен быть больше чем нуль.

Это требуется, помимо прочего, для обработки массивов объектов и указателей. Если вашим элементам было присвоено нулевое значение, то &(array[0]) будет идентичным &(array[42]), что вызовет всевозможные хаосы для ваших циклов обработки.

Причина, по которой это может быть не так машинное слово состоит в том, что в нем нет элементов, которые фактически требуют, чтобы он был выровнен на границе слова (например, целое число). Например, если вы помещаете char x; int y; внутри класса, мой GCC синхронизирует его с восемью байтами (поскольку второй int должен быть выровнен в этой реализации).

23
задан pnuts 4 September 2015 в 03:29
поделиться

2 ответа

Попробуйте посмотреть на PHPExcel. Это простой пример, который создает файл Excel с двумя листами:

<?php
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Create a first sheet, representing sales data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Something');

// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Name of Sheet 1');

// Create a new worksheet, after the default sheet
$objPHPExcel->createSheet();

// Add some data to the second sheet, resembling some different data types
$objPHPExcel->setActiveSheetIndex(1);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'More data');

// Rename 2nd sheet
$objPHPExcel->getActiveSheet()->setTitle('Second sheet');

// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="name_of_file.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
75
ответ дан 28 November 2019 в 17:57
поделиться

Если вы хотите, чтобы ваш PHP-скрипт создавал файл Excel, записывал в него некоторые данные на любом листе и т.д., а затем предлагал его клиенту для загрузки, вы можете просто использовать встроенное в PHP расширение COM. См: http://us2.php.net/manual/en/class.com.php для всевозможных примеров. Однако вам понадобится Excel (или клон OpenOffice), установленный на сервере. Если у вас его нет, возможно, ответ Марка Бейкера выше будет работать и без него.

3
ответ дан 28 November 2019 в 17:57
поделиться
Другие вопросы по тегам:

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