在将excel文件导入PHP并存储在MySQL中时,如何使用PHPExcel库读取下标/上标/新行

时间:2017-09-08 07:14:54

标签: php mysql phpexcel codeigniter-3 phpexcelreader

我在mysql数据库中保存excel文件时遇到问题,它包含一个单元格内的enter(换行符)和符号&上标也是。但它只存储为纯文本。

$objReader = new PHPExcel_Reader_Excel5();
$objPHPExcel = $objReader->load($inputFileName);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true);

然后我读了一些数据并使用

reset($sheetData);

重置指针。 并再次使用foreach()循环,将数据添加到数组并将该数组插入mysql表。这些步骤中是否删除了预格式化(单元格内的上标/下标/新行和粗体/斜体)?如何将数据完全放在表格中? 编辑:我使用的是PHPExcel的v1.8,PHP的v5.4和MySQL v5.6

2 个答案:

答案 0 :(得分:0)

include APPPATH.'/spreadsheetreader/php-excel-reader/excel_reader2.php';  
require(APPPATH.'/spreadsheetreader/SpreadsheetReader.php');
require(APPPATH.'/spreadsheetreader/SpreadsheetReader_CSV.php');
require(APPPATH.'/spreadsheetreader/SpreadsheetReader_ODS.php');
require(APPPATH.'/spreadsheetreader/SpreadsheetReader_XLS.php');
require(APPPATH.'/spreadsheetreader/SpreadsheetReader_XLSX.php');
class Dashboard extends REST_Controller
{
        public function __construct()
        {
            parent:: __construct();

            $this->load->library("PHPExcel");


        }


    public function dashboard_post()
    {


                $Reader = new SpreadsheetReader('./upload/'.$filename); 
                $totalSheet = count($Reader->sheets());
   //print_r($totalSheet);exit;
    // For Loop for all sheets 
    if($totalSheet>0)
    {
               for($i=0;$i<$totalSheet;$i++)
               {
                 $Reader->ChangeSheet($i);

                 foreach ($Reader as $Row)
                 {
                         $data=array(

                                'your table column name'=>isset($Row[1]) ? $Row[1] : '',
                                'your table column name'=>isset($Row[2]) ? $Row[2] : '',
                                'your table column name'=>isset($Row[3]) ? $Row[3] : '',
                                'your table column name'=>isset($Row[4]) ? $Row[4] : '',);
                        }

答案 1 :(得分:0)

toArray()方法旨在提供 简单 功能,以便从电子表格中的数据单元格中获取纯文本;所以&#34;格式化&#34;富文本(包含不同样式,颜色,换行符和单元格内容不同部分的字体信息的单元格)将被删除以提供该纯文本。

如果要访问该样式信息,则需要使用单元格的getValue()方法自行获取各个单元格中的数据;因此,您需要编写自己的循环来为表格中的所有单元格执行此操作;并且您需要决定如何在数据库中存储上标或粗体/斜体/下划线等内容,并相应地解析富文本单元格数据