我有以下细胞数据:
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();
但问题是,只有当整个单元格文本都是粗体时才有效,而在我的情况下,只有一部分是粗体。
任何人都知道如何解决这个问题?谢谢!
答案 0 :(得分:2)
具有多个格式的单元格是\ PhpOffice \ PhpSpreadsheet \ RichText \ RichText的实例 https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#add-rich-text-to-a-cell
要获取所需信息,您可以使用以下内容:
$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());
}
}