ホームページ >バックエンド開発 >PHPチュートリアル >PHPでExcelをエクスポートすると数値が科学表記に変わってしまう問題の解決策

PHPでExcelをエクスポートすると数値が科学表記に変わってしまう問題の解決策

PHP中文网
PHP中文网オリジナル
2017-03-30 17:48:563997ブラウズ

Excelにデータをエクスポートした際、数値の形式が正しくない場合は、主に以下の2つの状況に分けられます。

1. Excel のセル設定の長さが不十分です

解決策:

//在excel.php文件中 
$objActSheet = $objPHPExcel->getActiveSheet(); 
// 设置 栏目名称 
$objActSheet->setCellValue("b1", "卡号"); 
// 设置列的宽度 
$objActSheet->getColumnDimension('b')->setWidth(20);//改变此处设置的长度数值

2. Excel では文字が数値として解釈されるように設定するか、文字を追加する方法を見つけます。スペース。
解決策:

//添加数据处,主要是把要显示数据以chunk_split()函数处理以下,此函数的具体用法可以自己查看 
$objActSheet->setCellValue ( "b$i", chunk_split("123456789 ",4," ") );
//当然,如果不想让用户看到数字间有空格,那就把要分割的字段值设大一些,如例子中的4设为大于等于9的即可。

EXcelにエクスポートしたメインコードの前部分:

<? 
if(count($data)>40000){ 
$filename_type=&#39;csv&#39;; 
}else{ 
$filename_type=&#39;xls&#39;; 
} 
header("Content-Type: application/vnd.ms-excel"); 
Header("Accept-Ranges:bytes"); 
Header("Content-Disposition:attachment;filename=".$filename.".".$filename_type); //$filename导出的文件名 
header("Pragma: no-cache"); 
header("Expires: 0"); 
if($filename_type==&#39;xls&#39;){ 
echo &#39;<html xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns="http://www.w3.org/TR/REC-html40"> 
<head> 
<meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT"> 
<meta http-equiv=Content-Type content="text/html; charset=gb2312"> 
<!--[if gte mso 9]><xml> 
<x:ExcelWorkbook> 
<x:ExcelWorksheets> 
<x:ExcelWorksheet> 
<x:Name></x:Name> 
<x:WorksheetOptions> 
<x:DisplayGridlines/> 
</x:WorksheetOptions> 
</x:ExcelWorksheet> 
</x:ExcelWorksheets> 
</x:ExcelWorkbook> 
</xml><![endif]--> 

</head>&#39;; 
}

以下はf5d188ed2c074f8b944552db028f98a1a34de1251f0d9fe1e645927f19a896e8b6c5a531a458a2e790c1fd6421739d1cb90dd5946f0946207856a8a37f441edffd273fcf5bcad3dfdad3c41bd81ad3e5< ; /table> 形式の出力データ

長い間検索した結果、次のようになります。

「まず、Web ページからの Excel エクスポートの原理を理解しましょう。このデータを顧客に送信します。クライアントを使用する場合、クライアント プログラム (ブラウザー) がデータを Excel 形式で読み取るようにしたいため、MIME タイプを application/vnd.ms-excel に設定します。Excel がファイルを読み取るときは、次のようになります。データの場合、セルに指定された形式がない場合、Excel はセルのデータをデフォルトの形式で表示します。これにより、データ形式をカスタマイズすることができます。 Excel でサポートされている一般的に使用される形式を使用する必要があります。 一部の形式:
1) テキスト: vnd.ms-excel.numberformat:@
2) 日付: vnd.ms-excel.numberformat:yyyy/mm/dd
3) 数値: vnd.ms-excel.numberformat:# ,##0.00
4) 通貨: vnd.ms-excel.numberformat:¥#,##0.00
5) パーセンテージ: vnd.ms-excel.numberformat: #0.00%
あなた年などの形式をカスタマイズすることもできます。月は yy-mm などのように定義できます。これらの形式を理解した後、これらの形式をセルに追加する方法は非常に簡単です。スタイルを追加するだけです。対応するタグ ペア (つまり、終了タグ)。たとえば、b6c5a531a458a2e790c1fd6421739d1cb90dd5946f0946207856a8a37f441edf のようにラベル ペアにスタイルを追加します。 ="vnd.ms-excel.numberformat:@">41052219840216183390cc1e42bbf9b97c5947038eac7f874e
同様に、e388a4556c0f65e1904146cc1a846bee94b3e26ee717c64999d7867364b1b4a3 にスタイルを追加することも、a34de1251f0d9fe1e645927f19a896e87a10ee744b47486d758305c4c4b6583e, f5d188ed2c074f8b944552db028f98a1f16b1740fad44fb09bfe928bcc527e08; 親にスタイルを追加するとき ラベル ペアとサブラベル ペアの両方にスタイルを追加すると、テスト後にデータはどのスタイルで表示されますか?データに最も近いスタイルで表示されます

上記は、PHP で Excel をエクスポートするときに数値を科学表記に変換する解決策です。さらに関連する内容については、PHP の中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。