これは私の最初の質問です。 PHPExcelを使用して、.xlsxファイルからHTMLテーブルを作成しようとしています。あなたは私のプロジェクトを見つけることができます: http://rahulr92.x10.mx/excel/index.php ユーザー名 'admin'でログインして、 'テーブルの表示'オプションを見つけることができます。このページには、以前にアップロードされた.xlsxファイルの表が表示されます。私はPHPExcelを初めて使い、オンラインで見つけたいくつかの標準コードを使用しました。ここにあります:PHPExcelを使用して日付、時刻、および数値を正しく表示できません
<?php
require_once '/Classes/PHPExcel.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("..\excel.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$user=strtolower($_GET['user']);
$r_count=0;
echo '<table border="1">' . "\n";
for ($row = 5; $row <= $highestRow; ++$row) {
if ($row <7 || $user=="admin" || strstr(strtolower($objWorksheet->getCellByColumnAndRow(8, $row)->getValue()),$user))
{
if($row>7)$r_count++;
for ($col = 0; $col <= $highestColumnIndex; ++$col) {
if(PHPExcel_Shared_Date::isDateTime($objWorksheet->getCellByColumnAndRow($col,$row)))
echo '<td>' . date("d M Y",PHPExcel_Shared_Date::ExcelToPHP($objWorksheet->getCellByColumnAndRow($col, $row))) . '</td>' ;
else
echo '<td>' . $objWorksheet->getCellByColumnAndRow($col, $row)->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n";
}
}
echo '</table>' . "\n";
echo "No. of Entries: ".$r_count;
?>
残念ですが最適なコードです。私はPHPファイルを実行すると、私はテーブルを取得し、その中のすべての文字列が適切に表示されますが、日時と数字のフィールドは、一見無作為のばかばかしいでいっぱいです。上記のリンクからご覧ください。私はいくつかの調査を行い、その方法でisDateTime()関数について知っています。しかし、それは動作していないか、おそらく誤って使用されています。私はこのプロジェクトの締め切りが迫っているので、誰かが私を正しい方向に向けることができれば素晴らしいだろう。答えが非常に明白だったら本当に申し訳ありません。ありがとうございます。 Rahul
返信いただきありがとうございます。ここでは、 "ランダムなばかげた"という意味の例を見ることができます:http://rahulr92.x10.mx/excel/view.php?user=admin – rahulr92
私は$ objReader-> setReadDataOnly(true)ステートメントをコメントしようとしました。 「致命的なエラー:C:\ wamp \ www \ SN_project391 \ Classes \ PHPExcel \ Cell.phpの行で、134217728バイトのメモリサイズが使い果たされました(32バイトを割り当てようとしました) Call Stack' 。どうすれば修正できますか? – rahulr92
私はこの問題に対する以前の答えをいくつか見つけました。それらのエラーを修正しようとします。私は結果に戻ってきます。 – rahulr92