PHP Excel, но не Spreadsheet_Excel_Writer - PullRequest
2 голосов
/ 20 августа 2010

Мне нужно сохранить некоторые данные в файл .xls.Я пытаюсь использовать библиотеку PEAR Spreadsheet_Excel_Writer.Это работа.Но сейчас я работаю с хостингом без PEAR.Конечно, это очень ужасно.

Spreadsheet_Excel_Writer имеет много зависимостей.Мне нужен модуль или код, который я могу включить в свои скрипты.

Thx.

Ответы [ 5 ]

4 голосов
/ 20 августа 2010

Я часто использую Spreadsheet Writer, и это приятно иметь, но если вам не нужно несколько листов или возможность форматирования и т. Д., Вы всегда просто выводите HTML и отправляете

header("Content-type: application/vnd.ms-excel")

и расширение «.xls», а затем программа Excel или программа OpenOffice для работы с электронными таблицами (и я предполагаю, что программа для работы с электронными таблицами Mac) откроет ее и отформатирует HTML как таблицу.решение, но в конце концов, это выглядит довольно хорошо для конечного пользователя.Вы должны использовать таблицы в своем html, но вы можете добавить цвета / границы, отступы, изменения шрифта, rowspan, colspan и т. Д., Чтобы немного контролировать.Никаких функций, формул или нескольких листов, хотя.

4 голосов
/ 20 августа 2010

Это малоизвестный формат, который никогда не завоевывал популярность, но MS Office поддерживает так называемые XML-файлы Excel 2003 - которые действительно являются XML и, как минимум, выглядят так:

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
  <Worksheet>
    <Row>
      <Cell>
        <Data ss:Type="String">First</Data>
      </Cell>
    </Row>
   </Worksheet>
 </Workbook>

Вы можете сгенерировать это довольно просто без каких-либо расширений PHP, и он будет правильно открываться в любой версии MS Excel с 2003 года. OpenOffice 2 и 3 откроет их правильно, если вы переименуете расширение файла в .xls.xml

Когда пользователь открывает этот файл и сохраняет его из Excel, он по умолчанию преобразуется в классический файл XLS.

Как отмечает @ Alexander.Plutov в комментарии, имеется aбиблиотека для записи этих файлов .

На сайте IBM есть полезная (и более полная) страница об этом формате и PHP: http://www.ibm.com/developerworks/opensource/library/os-phpexcel/#N101F7

3 голосов
/ 20 августа 2010

Я использую http://www.bettina -attack.de / jonny / view.php / projects / php_writeexcel /

Я просто включил его во многие проекты, и он работает как шарм.

3 голосов
/ 20 августа 2010

Буквально, PHPExcel: http://phpexcel.codeplex.com/

1 голос
/ 04 февраля 2016

Осторожно, исходный код, предоставленный Piskvor:

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
  <Worksheet>
    <Row>
      <Cell>
        <Data ss:Type="String">First</Data>
      </Cell>
    </Row>
   </Worksheet>
 </Workbook>

не является допустимым файлом Excel (по крайней мере, в моей версии - Excel 2010) и не сможет открыться, выдав сообщение об ошибке, так как оно отсутствуетдва обязательных значения, исправленные в следующем примере (недостающая часть состоит в том, что в WorkSheet вам нужно Table, а WorkSheet должно иметь имя, указанное в виде строки в ss:Name):

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
   <Worksheet ss:Name="test">
     <Table>
       <Row>
         <Cell>
           <Data ss:Type="String">First</Data>
         </Cell>
       </Row>
     </Table>
   </Worksheet>
 </Workbook>

Это действительно становится действительной электронной таблицей Excel, и спасибо Piskvor за напоминание об этом замечательном открытом и машиночитаемом формате.

...