0

I tried to use phpoffice/phpexcel to do this but it was not successful. I have this form in html.

<body>
    <div align="center">ELENCA TABELLE PRESENTI NEL DB</div>
        <form action="index.php" method="post"
        enctype="multipart/form-data">
<table>
    <tr>
        <td>
            Filename:
        </td>
        <td>
            <input type="file" name="file" id="file">
        </td>
    </tr>
    <tr>
        <td colspan="2" align="right">
            <input type="submit" name="submit" value="Submit">
        </td>
    </tr>
</table>
</form>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
        <script src="/include/js/bootstrap-contextmenu.js"></script>
        <script type="text/javascript" src="/include/js/bootflat.min.js"></script>
        <script type="text/javascript" src="https://cdn.datatables.net/s/bs/pdfmake-0.1.18,dt-1.10.10,af-2.1.0,b-1.1.0,b-colvis-1.1.0,b-html5-1.1.0,b-print-1.1.0,cr-1.3.0,fc-3.2.0,fh-3.1.0,kt-2.1.0,r-2.0.0,rr-1.1.0,sc-1.4.0,se-1.1.0/datatables.min.js"></script>
</body>

I want to use it for uploading an excel file and another file called "index.php". I want to do a query for showing the data in this excel file which I have uploaded in a html table. How can I do this?

I have just installed the package phpoffice/phpexcel with composer. I can use the libraries of this package

Now I do this, but it doesn't work. What's wrong?

if(isset($_POST["Import"])){
echo $path=$_FILES["file"]["tmp_name"];

$path = "/home/b2bmomo/www";
$objPHPExcel = PHPExcel_IOFactory::load($path);

//Loop threw file to get data
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
    $worksheetTitle     = $worksheet->getTitle();
    $highestRow         = 20; //$worksheet->getHighestRow(); // e.g. 10
    $highestColumn      = 'G'; //$worksheet->getHighestColumn(''); // e.g 'F'
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
    $nrColumns = ord($highestColumn) - 64;

//Echo file info
echo "<br>The worksheet ".$worksheetTitle." has ";
echo $nrColumns . ' columns (A-' . $highestColumn . ') ';
echo ' and ' . $highestRow . ' row.';
echo '<br>Data: <table border="1"><tr>';

//Loop threw colum, rows and cells
for ($row = 11; $row <= $highestRow; ++ $row) {
    echo '<tr>';
    for ($col = 0; $col < $highestColumnIndex; ++ $col) {
        $cell = $worksheet->getCellByColumnAndRow($col, $row);
        $val = $cell->getCalculatedValue();
        $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val);
        echo '<td>' . $val . '<br></td>';
    }
    echo '</tr>';
}
echo '</table>';
}
Isuru
  • 430
  • 5
  • 21
  • 1
    Explain what you mean by "doesn't work".... besides the fact that you can simply use the PHPExcel HTML Writer to do most of this for you.... is anything being displayed? Are you getting any errors? – Mark Baker Feb 09 '16 at 11:25

1 Answers1

1

If you don't mind to use JS instead of PHP to do this, you could use FileReader and Local Storage to read your .xls and parse it.

You can find basic parsers implemented in vanilla js :

The reference is this post: https://stackoverflow.com/a/17258652/5661591

Community
  • 1
  • 1
Prechan
  • 71
  • 6