2012-03-29 13 views
1

私はxlsxファイルからdbにデータをインポートする小さなスクリプトを作成しています。私はPHPExcelライブラリを使用してデータを読み込んでいます。問題は、文字を同等のHTMLタグに変換する方法がないように見えることです。この背後にある理由は、保存されたデータをhtmlタグのあるページにプルすることです。だから私がこれを解決するために考えている一つの方法は、読者が各セルから取ったテキストを解析し、各文字をそのHTMLタグに相当するものに変換することです。ここでのxlsxセルからのテキストのサンプルです:ファイルの書式設定文字を検出するにはどうすればよいですか?

  • 不安
  • 恐慌
  • スリープ
  • いびき
  • 肥満
  • を擾乱:頻繁に頭痛のリスクを高める要因に貢献

  • カフェインの過剰使用
  • 過度の鎮痛薬の使用
  • 頭の上に頻繁に歪みや首
  • 目の問題
  • 私が変換したい禁止薬

  • アルコール摂取
  • 使用喫煙円形の箇条書きと行は、DBに保存する前に、同等のhtmlタグに分割されます。これをどのように達成するのですか?

    EDIT:ここコードです:文字列は引用符を取り除くしたい場合があります二重引用符である場合

    $value = $cell->getValue(); 
    $value = htmlentities($value); 
    $value = nl2br($value); 
    

    <?php 
    
    include 'PHPExcel.php'; 
    
    $objReader = PHPExcel_IOFactory::createReader('Excel2007'); 
    //$objReader->setReadDataOnly(true); 
    
    $objPHPExcel = $objReader->load("test.xlsx"); 
    $objWorksheet = $objPHPExcel->getActiveSheet(); 
    
    ?> 
    
    <html> 
        <head> 
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        </head> 
        <body> 
    <?php 
    echo '<table>' . "\n"; 
    foreach ($objWorksheet->getRowIterator() as $row) { 
        echo '<tr>' . "\n"; 
    
        $cellIterator = $row->getCellIterator(); 
        $cellIterator->setIterateOnlyExistingCells(false); // This loops all cells, 
                    // even if it is not set. 
                    // By default, only cells 
                    // that are set will be 
                    // iterated. 
        foreach ($cellIterator as $cell) { 
        echo '<td>' . $cell->getValue() . '</td>' . "\n"; 
        } 
    
        echo '</tr>' . "\n"; 
    } 
    echo '</table>' . "\n"; 
    ?> 
        </body> 
    </html> 
    
  • +0

    そのセルのgetValue()の結果はどうですか...つまり、実際のテキストコンテンツは何ですか? –

    +0

    @マーク・ベイカー:これは、書式設定が全く行われていない単純なテキストです。それがフォーマットされていれば、確かにHTMLではありません。テキストは一緒に窮屈です。スペースなし、改行なし、円形の弾丸がレンダリングされます。 – jilseego

    +0

    私はアイデアを持っていない、私は見てみましょう...それは間違いなくリッチテキストオブジェクトをdnot返されるテキストですか? –

    答えて

    1

    htmlentitiesnl2brと一緒にトリックを行う必要がありますhtmlentitiesを適用する前に:

    $value = $cell->getValue(); 
    $value = trim($value, '"'); 
    $value = htmlentities($value); 
    $value = nl2br($value); 
    

    htmlentitiesは、箇条書きを&bullとします。 ul/olリストではなく、箇条書きを表すビジュアルグリフが表示されます。

    関連する問題