亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過phpword庫讀取表格單元格內容

如何通過phpword庫讀取表格單元格內容

PHP
撒科打諢 2023-09-15 10:14:42
這是我目前的代碼$phpWord = \PhpOffice\PhpWord\IOFactory::load($source);$sections = $phpWord->getSections();foreach ($sections as $s) {    $els = $s->getElements();    foreach ($els as $e) {        switch (get_class($element)) {            case 'PhpOffice\PhpWord\Element\TextRun':                $this->logger->debug("TextRun");                $this->getTextFromTextRun($element);                break;            case 'PhpOffice\PhpWord\Element\Table':                $this->logger->debug("Table");                $this->iterateOverRows($element);                break;        }    }}private function getTextFromTextRun($element) {    for ($index = 0; $index < $element->countElements(); $index++) {        $textRunElement = $element->getElement($index);        $text = $textRunElement->getText();        if (strlen($text) > 0) {            $this->logger->debug("TextRun Text: " . $text);        }    }}private function iterateOverRows($table) {    $rows = $table->getRows();    foreach ($rows as $row) {        foreach ($row->getCells() as $cell) {            // What to do here???        }    }}我不知道如何從單元格中獲取內容?這些是單元對象中可用的 getter 方法:獲取評論范圍結束獲取評論范圍開始獲取文檔部分獲取文檔部分ID獲取元素獲取元素Id獲取元素索引獲取元素獲取嵌套級別獲取父級獲取PHPWord獲取關系Id獲取SectionId獲取樣式獲取軌跡更改獲取寬度
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

已經在這里解決了這個問題:


private function iterateOverRows($table) {

    $rows = $table->getRows();

    foreach ($rows as $row) {

        foreach ($row->getCells() as $cell) {

            $els = $cell->getElements();

            foreach ($els as $e) {

                $this->switchElements($e);

            }

        }

    }

}



private function switchElements($element) {

    switch (get_class($element)) {

        case 'PhpOffice\PhpWord\Element\TextRun':

            $this->getTextFromTextRun($element);

            break;


        case 'PhpOffice\PhpWord\Element\Table':

            $this->iterateOverRows($element);

            break;


        default:

            break;

    }

}



private function getTextFromTextRun($element) {

    for ($index = 0; $index < $element->countElements(); $index++) {

        $textRunElement = $element->getElement($index);


        switch (get_class($textRunElement)) {

            case 'PhpOffice\PhpWord\Element\Text':

            case 'PhpOffice\PhpWord\Element\TextRun':

                $text = $textRunElement->getText();

                if (strlen($text) > 0) {

                    $this->logger->debug("Text: " . $text);

                    $this->getFont($textRunElement);

                }

                break;


            case 'PhpOffice\PhpWord\Element\TextBreak':

                break;


            default:

                break;

        }

    }

}



查看完整回答
反對 回復 2023-09-15
  • 1 回答
  • 0 關注
  • 150 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號