У меня есть файл Excel. Этот файл Excel преобразуется в таблицу html и вставляется с тремя дополнительными столбцами с текстовыми полями. Я должен вставить некоторые данные и экспортировать таблицу html с этими дополнительными столбцами как новый файл Excel.
Я пробовал следующий код для этого:
<?php
$newcol = array('col1','col2','col3');
$xtra=sizeof($newcol);
echo '<table border="1" cellpadding="3" style="width: 100%">';
$dim = $xlsx->dimension();
$cols = $dim[0];
echo '<thead>';
foreach ( $xlsx->rows() as $k => $r ) {
if ( $k === 0 ) {
echo '<tr style="height: 50px;">';
for ( $i = 0; $i < $cols; $i ++ ) {
echo '<th>' . ( isset( $r[ $i ] ) ? $r[ $i ] : ' ' ) . '</th>';
}
for ( $j = 0; $j < $xtra; $j ++ ) {
echo '<th>' . ( isset( $newcol[ $j ] ) ? $newcol[ $j ] : ' ' ) . '</th>';
}
echo '</tr>';
}
}
echo '</thead>';
echo '<tbody>';
foreach ( $xlsx->rows() as $k => $r ) {
if ($k == 0) continue; // skip first row
echo '<tr style="height: 50px;">';
for ( $i = 0; $i < $cols; $i ++ ) {
echo '<td>' . ( isset( $r[ $i ] ) ? $r[ $i ] : ' ' ) . '</td>';
}
for ( $j = 0; $j < $xtra; $j ++ ) {
echo '<td>' . ('<input type="text" > ') . '</td>';
}
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
echo '<div class="pull-right">
<button onclick="exportTableToExcel('sheettable','members')">Export Table Data To Excel File</button>
</div>';
?>
<script>
function exportTableToExcel(tableID, filename = ''){
var downloadLink;
var dataType = 'application/vnd.ms-excel';
var tableSelect = document.getElementById(tableID);
var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20');
filename = filename?filename+'.xls':'excel_data.xls';
downloadLink = document.createElement("a");
document.body.appendChild(downloadLink);
if(navigator.msSaveOrOpenBlob){
var blob = new Blob(['\ufeff', tableHTML], {
type: dataType
});
navigator.msSaveOrOpenBlob( blob, filename);
}else{
downloadLink.href = 'data:' + dataType + ', ' + tableHTML;
downloadLink.download = filename;
downloadLink.click();
}
}
</script>