首页 > 技术文章 > PHPExcel读取excel转换为数组

sener 2021-04-15 11:04 原文

1.下载PHPExcel.php 
2.将excel转换为数组

require "PHPExcel.php";
function format_excel2array($filePath = '', $sheet = 0)
{
        if (empty($filePath) or !file_exists($filePath)) {
                die('file not exists');
        }
        $PHPReader = new PHPExcel_Reader_Excel2007();        //建立reader对象
        if (!$PHPReader->canRead($filePath)) {
                $PHPReader = new PHPExcel_Reader_Excel5();
                if (!$PHPReader->canRead($filePath)) {
                        echo 'no Excel';
                        return;
                }
        }
        $PHPExcel = $PHPReader->load($filePath);        //建立excel对象
        $currentSheet = $PHPExcel->getSheet($sheet);        //**读取excel文件中的指定工作表*/
        $allColumn = $currentSheet->getHighestColumn();        //**取得最大的列号*/
        $allRow = $currentSheet->getHighestRow();        //**取得一共有多少行*/
        $data = array();
        for ($rowIndex = 1; $rowIndex <= $allRow; $rowIndex++) {        //循环读取每个单元格的内容。注意行从1开始,列从A开始
                for ($colIndex = 'A'; $colIndex <= $allColumn; $colIndex++) {
                        $addr = $colIndex . $rowIndex;
                        $cell = $currentSheet->getCell($addr)->getValue();
                        if ($cell instanceof PHPExcel_RichText) { //富文本转换字符串
                                $cell = $cell->__toString();
                        }
                        $data[$rowIndex][$colIndex] = $cell;
                }
        }
        return $data;
}

$filePath = 'test.xlsx';
$data = format_excel2array($filePath);
print_r($data);

/**定义格式 */
$str = '';
$oldUser = '';
$newUser = '';
foreach ($data as $k => $v) {
        $oldUser = $data[$k]['A'];
        $newUser = $data[$k]['B'];
        $str .= '$arr[\'' . $oldUser . '\']=' . '[\'' . $newUser . '\'];' . "\n";
}
/**保存到文件 */
if (file_put_contents("userInfo.txt", $str, FILE_APPEND)) {
        $filename = "userInfo.txt";
        $handle = fopen($filename, "r");
        $contents = fread($handle, filesize($filename));
        $contents = rtrim($contents, ";");
        fclose($handle);
} else {
        exit(json_encode(["status" => "error", "errmsg" => "write failed!"]));
}

 

3.输出数组 :

 

 4.导出文件:

 

 

原文:https://www.cnblogs.com/archoncap/p/5157149.html

 

推荐阅读