24

現在、PHP から .xls ファイルを作成する最良の方法を見つけようとしています。ヘッダーのコンテンツ タイプを「application/vnd.ms-excel」に変更し、データをコンマ区切り形式で出力するだけでよいように思えます。これはこれを行うための最良の方法ですか?

助けてくれてありがとう!
大都市

編集

データを HTML として出力するだけではダメですか? この問題のために拡張したいクラスが既にあるので、サードパーティのソリューションには近づかないことをお勧めします。そのファイル形式を最大限に活用するために、データを出力する最良の方法を知る必要があります。

PHPExcel を見た後、この問題の最良の解決策のようです。すべての回答に感謝します。できれば 3 つ正解したはずです(笑)。しかし、賛成票を投じる必要があります:)

4

9 に答える 9

18

CSV ファイルまたは XLS ファイルが必要かどうかによって異なります。XLS ファイルには、セルの書式設定情報、行/列のロック、保護、および CSV ファイルでは不可能なその他の機能を含めることができます。また、CSV ファイルを開く場合、Excel は UTF-8 でエンコードされたコンテンツを正しくサポートしないことに注意してください。

フォーマットされた XLS ファイルが必要な場合は、そのフォーマットでファイルを書き込むことができるPhpSpreadsheetなどのライブラリ、またはサーバーが Excel がインストールされた Windows で実行されている場合は COM が必要です。

于 2010-06-28T14:52:49.270 に答える
3

MicrosoftOfficeが理解できるXML形式の1つを使用できます。

詳細/仕様については、 MicrosoftのOpenXML開発者サイトを参照してください。

これを支援するために見ることができるPHPExcelと呼ばれるライブラリがあります。

もちろん、これはすべてあなたが何を意味するかに依存します:

「そのファイル形式を最大限に活用する」

フォーマットのない単純なテーブルがある場合は、CSVファイルで十分な場合があります。ただし、スプレッドシートのより多くの機能を使用したい場合は、OpenXMLを確認することをお勧めします。

于 2010-06-28T15:06:11.420 に答える
2

HTMLを出力するだけで、新しいバージョンのExcelがそれを読み取ることができます。ただし、それを使用してどの程度のフォーマットを実行できるかはわかりません。

データの入力、豊富な書式設定、または数式が必要な場合は、PHPExcelで成功しました。

私の好みは、CSV ファイルを書き出すことです。CSV は非常に書きやすい形式で、既存の html テーブル スクリプトから簡単に変換できます。また、Microsoft 以外のさまざまなスプレッドシート プログラムで読み取ることができるという利点もあります。CSV を Web アプリケーションで選択するファイル形式にすることができれば、スプレッドシートを入力として受け入れなければならないときに報酬を得ることができます。CSV ファイルは、Excel ファイルよりもはるかに読みやすく、解析しやすいです。

于 2010-06-28T15:25:03.200 に答える
1

免責事項: 私は、DocRaptor を開発した会社である Expected Behavior で働いています。

つまり、DocRaptor を使用して HTML から XLS ファイルを生成できます。DocRaptor は Ruby on Rails プロジェクトですが、PHP で使用できます。PHP の例を次に示します。

DocRaptor PHP の例

DocRaptor のホームページへの別のリンクを次に示します。

DocRaptor で HTML から Excel へ

于 2012-11-09T19:19:44.600 に答える
1

XLS ファイル ラッパーを試してみてください

于 2010-06-28T14:47:35.507 に答える
1

この PEAR パッケージを見てみましょう: Spreadsheet Excel Writer

于 2010-06-28T14:47:43.120 に答える
-1

このファイルの使用を開始できます。Excelファイルを作成し、ダウンロードするのに役立ちます。

このような行を

01-simple-download-xlsx.php

$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Roll')
            ->setCellValue('B1', 'Name')
            ->setCellValue('C1', 'Total Classes')
            ->setCellValue('D1', 'Class Attended')
        ->setCellValue('E1', 'Percentage');

while ループを使用して、このようなデータベースからデータを出力できます。

$i=2;   
while ($row = $database->fetch_array($result)) 
 { 

       $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$i, $row[0])
            ->setCellValue('B'.$i, $row[1])
            ->setCellValue('C'.$i, $row[2])
            ->setCellValue('D'.$i, $total)
        ->setCellValue('E'.$i, round(($row[2]/$total)*100));
          $i++;
 }
于 2013-12-30T16:28:51.833 に答える
-1

はい、それは 1 つの可能な方法です - Ms Excel で開くプレーンな CSV ファイルが必要な場合。

豊富な XLS ファイルが必要な場合は、「CarlosAg.ExcelXmlWriter.dll」などのサード パーティの DLL を使用して XLS ファイルを作成するなど、多くのオプションがあります。この dll を使用したサンプルをネットで検索するか、ここを参照してください。

于 2010-06-28T14:49:07.577 に答える