2016-10-27 6 views
0

一般的な形式のExcelファイルにいくつかのセルがあります。 このセルの値が、私は私が得たセル読んだとき、phpexcelを使用してPHP - PHPExcelのセルをxlsファイルに読み込みます

1,99 
10,88 

です:私は、元の値1,99を取得できますか

1.99 
10.88 

を?

は私が

$sheet->getCell("C2")->getValue(); 
$sheet->getCell("C2")->getFormattedValue() 

を試してみました。しかし、両方が返さ

1.99 
10.88 
+0

セルには文字列形式を使用する必要がありますが、数字ではありません。 – nogad

+0

ではありません。ユーザーはExcelファイルをアップロードし、デフォルトでは一般的な形式です。彼らが1,9をタイプするとき、一般的なフォーマットはそれをExcelのように保ちます... – ricardo

答えて

2

PHPExcel は、おそらくのロケールMS Excelのすべてのユーザーのバージョン用に設定されている設定、および取り扱いを知ることができませんロケール固有の書式(ポイントではなく小数点のカンマなど)は、MS Excel自体のインスタンスに固有のものです。 MS Excelのコピーに同じファイルを開いた場合、小数点が表示されます。つまり、ローカル設定はファイルに定義されていません。純粋にMS ExcelのGUIです。

ユーザロケールに固有のフォーマットを行う必要がある場合は、getValue()を使用して生データを取り出し、PHPのIntl NumberFormatterを使用してフォーマットをローカライズします。

+0

行が一般的であるかどうかを検出する方法はありますか? 数値であるかどうかを確認してから、Intl NumberFormatterで変換することができます。 - > getDataTypeは、GeneralとTextの両方に対して 's'を返します。 – ricardo

+0

"一般"はフォーマットマスクの設定です: '$ sheet-> getStyle( 'A1') - > getNumberFormat() - > getFormatCode()' –

+0

ありがとうあなたは正しいです – ricardo

関連する問題