繁体   English   中英

PHPExcel动态设置单元格值

[英]PHPExcel set cell value dynamically

这是我获取Excel文件数据的代码...

    require_once 'IOFactory.php';
    $objPHPExcel = PHPExcel_IOFactory::load("NAV USER ACCESS Calculation.xlsx"); 
    $objPHPExcel->setActiveSheetIndex(2);

    $worksheet = $objPHPExcel->getActiveSheet();

    $worksheetTitle     = $worksheet->getTitle();
    $highestRow         = $worksheet->getHighestRow(); // e.g. 10
    $highestColumn      = $worksheet->getHighestColumn(); // e.g 'F'
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
    $nrColumns = ord($highestColumn) - 64;
    echo '<div id="table-cont">
        <table border="1">';
    for ($row = 1; $row <= $highestRow; ++ $row)
    {
        echo '<tr>';
        for ($col = 0; $col < $highestColumnIndex; ++ $col)
        {
            $cell = $worksheet->getCellByColumnAndRow($col, $row);
            $val = $cell->getValue();
            $val =$cell->getCalculatedValue();
            $val =$cell->getFormattedValue();

            $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val);
            echo '<td>' . $val . '</td>';
        }
        echo '</tr>';
    }
    echo '</table>
        <div id="clock"></div>
        </div>';

这是我将表设置为excel的代码,但是我不知道怎么了...

    $serverName="192.168.1.253";
    $conInfo=array("Database"=>"dbName","UID"=>"sa","PWD"=>"xxxxx");
    $con= sqlsrv_connect($serverName,$conInfo);

    require_once 'IOFactory.php';
    $objPHPExcel = PHPExcel_IOFactory::load("NAV USER ACCESS Calculation.xlsx"); 
    $objPHPExcel->setActiveSheetIndex(2);

    $worksheet = $objPHPExcel->getActiveSheet();

    $worksheetTitle     = $worksheet->getTitle();
    $highestRow         = $worksheet->getHighestRow(); // e.g. 10
    $highestColumn      = $worksheet->getHighestColumn(); // e.g 'F'
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
    $nrColumns = ord($highestColumn) - 64;
    echo '<div id="table-cont">
        <table border="1">';
    $sql= sqlsrv_query($con,"SELECT * FROM dbo.[Active Session]");
    while($data=sqlsrv_fetch_array($sql))
    {
        for ($row = 1; $row <= $highestRow; ++ $row)
        {
            echo '<tr>';
            for ($col = 0; $col < $highestColumnIndex; ++ $col)
            {
                $cell = $worksheet->setCellValueByColumnAndRow($col, $row);
                $val = $cell->getValue();
                $val =$cell->getCalculatedValue();
                $val =$cell->getFormattedValue();

                $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val);
                echo '<td>' . $val . '</td>';
            }
            echo '</tr>';
        }
    }
    echo '</table>
        <div id="clock"></div>
        </div>';

应该像

$worksheet = $objPHPExcel->getActiveSheet();

$highestRow = $worksheet->getHighestRow() + 1;
$sql= sqlsrv_query($con,"SELECT * FROM dbo.[Active Session]");
while($data=sqlsrv_fetch_array($sql))
{
    $worksheet->fromArray($data, null, 'A' . $highestRow++);
}

然后再保存文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM