0

mysql データベースからデータを取得し、それを使用して Excel ファイルを生成しています。日付構文の影響を受けている破損した xlsx ファイルを取得し続けます。データベースから日付 (型) の値を取得し、PHPExcel を使用してセルに入力するにはどうすればよいですか? 例えば

$objPHPExcel -> getActiveSheet() -> SetCellValue('A' . $i, $result["name"]); 
$objPHPExcel -> getActiveSheet() -> SetCellValue('B' . $i, $result["dateofcontract"]);
4

3 に答える 3

2

ドキュメントによると、次のように実行できます。

/* PHPExcel_Cell_AdvanceValueBinder required for this sample */
require_once 'PHPExcel/Cell/AdvancedValueBinder.php';

// MySQL-like timestamp '2008-12-31' or date string
PHPExcel_Cell::setValueBinder(new PHPExcel_Cell_AdvancedValueBinder());
$objPHPExcel->getActiveSheet()
            ->setCellValue('B' . $i, $result['dateofcontract']));
$objPHPExcel->getActiveSheet()
            ->getStyle('B' . $i)
            ->getNumberFormat()
            ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH)
于 2013-01-27T19:07:59.833 に答える
1

PHPExcelには、UNIXタイムスタンプまたはPHP DateTimeオブジェクトをExcelのdatetimestampsに変換するための組み込み関数があり、一部の文字列の日付形式もExcelのdatetimestampsに変換されます。

PHPExcel_Shared_Date::PHPToExcel()

次に、結果のExcel datetimestamp値をセル値として設定し、セルnumberformatスタイルを日付/時刻形式を表すマスクに設定します。これは、petermが言及したAdvanced Value Binderが行うこととまったく同じですが、Advanced Value Binderは、変更したくない特定の他の値(パーセンテージなど)も操作します。

于 2013-01-27T22:04:13.230 に答える
0

日付が DB にどのように格納されているかに応じて、タイムスタンプとして取得し、php のdate()関数を使用します。

例えば。

"SELECT UNIX_TIMESTAMP(dateofcontract) AS dateofcontract"

$formattedDate = date("m.d.y",$dateofcontract) // outputs 03.10.01

明らかに、db クエリの結果を に割り当てる必要があります$dateofcontract。日付の可能なすべての形式を確認するには、ここを参照してください: date()

于 2013-01-27T19:05:11.573 に答える