phpExcel, как написать верхний индекс в Excel - PullRequest
2 голосов
/ 14 декабря 2011

Я использую класс PHPExcel для записи в файл Excel.

Мой вопрос: как записать данные в ячейку с верхним индексом, если мое значение составляет от ( M<sup>3</sup>) до M 3 (в Excel)

  // $data['dataLashing'][$i]['units_name'] - it`s a value from db in LOOP

$getExcelObject
            ->mergeCells("A$startRow:E$startRow")->setCellValue("A$startRow",$data['dataLashing'][$i]['material'])
            ->mergeCells("F$startRow:G$startRow")->setCellValue("F$startRow",$data['dataLashing'][$i]['units_name'])
            ->mergeCells("H$startRow:I$startRow")->setCellValue("H$startRow",$data['dataLashing'][$i]['quantity']);

http://phpexcel.codeplex.com/

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Попробуйте это:

      $objRichText = new PHPExcel_RichText();
      $objRichText->createText($data['dataLashing'][$i]['units_name']);

   //condition your html tag
      if(preg_match('/<sup>(.+)<\/sup>/i', $data['dataLashing'][$i]['units_name'],$result)) {
         $objRichText = new PHPExcel_RichText();
         $objCubed = $objRichText->createText(preg_replace('/<sup>(.+)<\/sup>/i', '', $data['dataLashing'][$i]['units_name']));
         $objCubed = $objRichText->createTextRun($result[1]);
         $objCubed->getFont()->setSuperScript(true);
      }      
      $getExcelObject
       ->mergeCells("A$startRow:E$startRow")->setCellValue("A$startRow",$data['dataLashing'][$i]['material'])
        ->mergeCells("F$startRow:G$startRow")->setCellValue("F$startRow",$objRichText)
        ->mergeCells("H$startRow:I$startRow")->setCellValue("H$startRow",$data['dataLashing'][$i]['quantity']);

     }
1 голос
/ 14 декабря 2011

Вам нужно заполнить ячейку форматированным текстом:

$objRichText = new PHPExcel_RichText();
$objRichText->createText('M');

$objCubed = $objRichText->createTextRun('3');
$objCubed->getFont()->setSuperScript(true);

$objPHPExcel->getActiveSheet()->getCell('A18')->setValue($objRichText);
...