0

上传 Excel 文件没问题,不是问题

浏览了很多关于uloading excel to 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 

我没有得到这个

4

1 回答 1

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 标记,显示上标和下标字符

于 2013-01-28T07:32:59.493 回答