0

Excelファイルのアップロードは問題なく問題ありません

Excel から mysql へのアップロードに関する多くの記事を読みました

http://phpexcel.codeplex.com/

http://sourceforge.net/projects/phpexcelreader/

https://stackoverflow.com/a/7889220/1026905 (本当に素晴らしいエンコーディング クラス)

私の問題は、Excelファイルに表示されている文字をそのままアップロードできないことです

上付き文字の部分が変換されています

∴ tn = n² + 2n + 1 + 2

n² ... そのまま
変換 ∴ .... そのまま変換

∠Ωπ √ ∞ ≅⊥∫∪∴≈≡⊆μ のようなすべての文字 そのまま変換できました

唯一の問題は tn、t1、t2、t3 です。n、1、2、3 を下付き文字として取得できません (ここには表示できませんが、画像で表示できます)

 tn ... should be t<sub>n</sub>

... in html format n should be subscript 

私はこれをそのまま受け取っていません

4

1 に答える 1

2

PHPExcel を使用すると、セルにリッチ テキストが含まれているかどうかを識別できます。これは、getValue() 呼び出しが、string/integer/float/boolean スカラー タイプではなく PHPExcel_RichText オブジェクトを返すためです。

次に、関連付けられているスタイルを参照して、その PHPExcel_RichText オブジェクトの PHPExcel_RichText_Run オブジェクトのコレクションをループできます。

$cellValueAsString = '';
$elements = $cell->getValue()->getRichTextElements();
foreach ($elements as $element) {
    // Rich text start?
    if ($element instanceof PHPExcel_RichText_Run) {
        if ($element->getFont()->getSuperScript()) {
            $cellValueAsString .= '<sup>';
        } else if ($element->getFont()->getSubScript()) {
            $cellValueAsString .= '<sub>';
        }
    }
    // Convert UTF8 data to PCDATA
    $cellText = $element->getText();
    $cellValueAsString .= htmlspecialchars($cellText);
    if ($element instanceof PHPExcel_RichText_Run) {
        if ($element->getFont()->getSuperScript()) {
            $cellValueAsString .= '</sup>';
        } else if ($element->getFont()->getSubScript()) {
            $cellValueAsString .= '</sub>';
        }
    }
}

リッチ テキスト セルのコンテンツを、上付き文字と下付き文字を表示する単純な HTML マークアップに変換する単純なコード ブロックになります。

于 2013-01-28T07:32:59.493 に答える