导入带有下标字符的excel文件

时间:2013-01-27 03:10:08

标签: php mysql excel subscript

上传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 

我没有得到它,因为它是

1 个答案:

答案 0 :(得分:2)

使用PHPExcel,您可以识别单元格是否包含富文本,因为getValue()调用将返回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标记