2

我有以下单元格数据:

bla bla bla abcd efgh ijkl

注意,abcd是粗体,efgh是斜体,同时ijkl是粗体和斜体。

我想读取整个单元格的数据,并将其保存在数据库中,以便我可以将其按原样呈现给最终用户(即使用这些样式)。我搜索了文档,我只能修改这段代码:

$path = $this->get('kernel')->getRootDir() . '/../intrebari.xlsx';
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($path);
$bold = $spreadsheet->getActiveSheet()->getStyle('A3')->getFont()->getBold();

但它的问题在于,这只有在整个单元格文本是粗体时才有效,在我的情况下,只有部分是粗体。

任何人都知道如何解决这个问题?谢谢!

4

1 回答 1

6

使用多种格式的单元格 \PhpOffice\PhpSpreadsheet\RichText\RichText(请参阅:文档中的向单元格添加富文本)。

要获取所需的信息,您可以使用以下内容:

$cellValue = $spreadsheet->getActiveSheet()->getCell('A3')->getValue();
        
if ($cellValue instanceof \PhpOffice\PhpSpreadsheet\RichText\RichText) {
       foreach ($cellValue->getRichTextElements() as $richTextElement) {
                var_dump($richTextElement->getText());
                var_dump($richTextElement->getFont()->getBold());
       }
}
于 2018-03-20T13:03:25.593 回答