![](/img/trans.png)
[英]PhpSpreadsheet - how to determine if a number is formatted as text?
[英]Number stored as text - PHPSpreadsheet
我正在使用 PHPSpreadsheet 將數據從 MySQL DB 導出到 Excel。 電子表格工作正常,數據導出正確,但是,數字被存儲為文本。 我可以讓 PHPSpreadsheet 將單元格轉換為數字,但數字仍存儲為文本。
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Reference');
$sheet->setCellValue('B1', 'Project Name');
$sheet->setCellValue('C1', 'Value');
$sheet->setCellValue('D1', 'Sales Rep');
$sheet->setCellValue('E1', 'Stage');
if ($totalrows_lpr > 0) {
$i =1;
while ($row_lpr = mysqli_fetch_assoc($result_lpr)) {
$i++;
$projectID = $row_lpr['projectID'];
$projectRef = $row_lpr['projectRef'];
$projectName = $row_lpr['projectName'];
$value = projectvalue2($projectID);
$staffName = $row_lpr['firstName'] . " " . $row_lpr['surname'];
$stageName = $row_lpr['stageName'];
$sheet->setCellValue('A'.$i , $projectRef);
$sheet->setCellValue('B'.$i , $projectName);
$sheet->setCellValue('C'.$i , $value);
$sheet->getStyle('C'.$i)->getNumberFormat()->setFormatCode('#,##0.00');
$sheet->setCellValue('D'.$i , $staffName);
$sheet->setCellValue('E'.$i , $stageName);
}
}
function(項目值2)的代碼:
$sql_pv = "SELECT MAX(productTotal)
FROM
( SELECT SUM(productTotal) AS productTotal
FROM quote_items
LEFT JOIN quote_details
ON quote_items.quoteID = quote_details.quoteID
WHERE quote_items.projectID = $projectID AND quote_details.visible = 1
GROUP BY quote_items.quoteID
)
quote_items
";
該數字的格式正確,帶有千位分隔符和 2 個小數點。 如果單元格的值為零,因為數據庫中沒有數據,那么它將作為數字存儲在單元格中。
我在 GitHub/PHPSpreadsheet 論壇上從 Mark Baker 那里得到了一些幫助。 我將數據庫中的數據類型從小數(13,2)更改為浮點數,現在單元格顯示數字而不是文本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.