这里我展示了数据库表导出我的excel文件的一些部分代码。该文件已写入但格式不正确:
function get_report(){
$this->load->dbutil();
$this->load->helper('download');
$query = $this->pharmacy_model->get_report();
$data = $this->dbutil->csv_from_result($query, ';');
force_download('CSV_Report.csv', $data);
}
它是使用数据下载和提取的,但格式不正确。我需要它像在this image
第1步:在密钥值对中获取MySql数据。
Array
(
[14] => Array
(
[Name] => Parvez Alam
[Age] => 21
[Gender] => Male
)
[15] => Array
(
[Name] => Shavez Alam
[Age] => 21
[Gender] => Male
)
)
第2步:PHP代码获取选项类型并强制浏览器下载文件而不是显示。
if(isset($_POST["ExportType"]))
{
switch($_POST["ExportType"])
{
case "export-to-excel" :
// Submission from
$filename = $_POST["ExportType"] . ".xls";
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
ExportFile($data);
//$_POST["ExportType"] = '';
exit();
default :
die("Unknown action : ".$_POST["action"]);
break;
}
}
function ExportFile($records) {
$heading = false;
if(!empty($records))
foreach($records as $row) {
if(!$heading) {
// display field/column names as a first row
echo implode("\t", array_keys($row)) . "\n";
$heading = true;
}
echo implode("\t", array_values($row)) . "\n";
}
exit;
}
第3步:为表格中的显示数据定义html布局,按钮以触发export-to-csv操作。
<div><a href="javascript:void(0)" id="export-to-excel">Export to excel</a></div>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" id="export-form">
<input type="hidden" value='' id='hidden-type' name='ExportType'/>
</form>
<table id="" class="table table-striped table-bordered">
<tr>
<th>Name</th>
<th>Status</th>
<th>Priority</th>
<th>Salary</th>
</tr>
<tbody>
<?php foreach($data as $row):?>
<tr>
<td><?php echo $row ['Name']?></td>
<td><?php echo $row ['Status']?></td>
<td><?php echo $row ['Priority']?></td>
<td><?php echo $row ['Salary']?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
第4步:现在我们将使用jQuery代码来获取click事件。
<script type="text/javascript">
$(document).ready(function() {
jQuery('#Export to excel').bind("click", function() {
var target = $(this).attr('id');
switch(target) {
case 'export-to-excel' :
$('#hidden-type').val(target);
//alert($('#hidden-type').val());
$('#export-form').submit();
$('#hidden-type').val('');
break
}
});
});
</script>
只需使用','
而不是分号:
$data = $this->dbutil->csv_from_result($query, ';');