php手机端下载excel,PHPExcel:在客户端下载Excel文件

问题已解决:对于可能存在此问题的其他用户 – 请注意PHP文件的编码.如果您使用PHPExcel,它必须是ANSII编码而不是UTF8,否则将彻底下载EXCEL.添加的标题(答案1)在我更改了文件本身的编码后解决了问题.

我正在使用PHPExcel从MYSQL DB中的表创建一个EXCEL,因此用户可以将其下载到他的计算机上.

下面的代码创建了一个正确的Excel文件,但问题是它被下载到我的服务器.我在PHPExcel手册中读到我需要添加标题:

header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="'.$name.'.xls"');

header('Cache-Control: max-age=0');

header('Cache-Control: max-age=1');

header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past

header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified

header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1

header ('Pragma: public'); // HTTP/1.0

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save('php://output');

但如果我这样做,下载的文件是:

里面有一些j ..

2.表示Excel需要修复它,因为文件不好.

问题是这个文件保存为UTF8,如果我把它编码为ANSI然后它正常工作,但当然这是一个手动更改,我需要一个正常工作excel到达用户.

什么是虫子?

我的代码有效(但将文件下载到服务器):

include 'connection.php';

include 'checkUser.php';

//Getting all the needed information from the DB

$task_id=$_GET['id'];

$query2 = "SELECT * FROM projects WHERE ProjectID=$task_id";

$data2 = mysqli_query($con, $query2);

$row = mysqli_fetch_array($data2);

$project_type = $row['ProjectType'];

$project_name = $row['ProjectName'];

switch ($project_type){

case 2: $NumberOfRows=22; $project = "slivedetails"; break;

case 3: $NumberOfRows=30; $project = "plivedetails"; break;

default: $NumberOfRows=0; $project = "none";

}

//column names

if ($project="slivedetails"){

$ColumnNames = mysqli_query($con,"SHOW COLUMNS FROM slivedetails") or die("mysql error");

}

else if ($project="plivedetails"){

$ColumnNames = mysqli_query($con, "SHOW COLUMNS FROM plivedetails") or die("mysql error");

}

$query = "SELECT * FROM $project WHERE TaskID=$task_id";

$data = mysqli_query($con, $query);

$num_rows = mysqli_num_rows($data);

/** Include PHPExcel */

require_once 'PHPExcel_1.7.9_doc/Classes/PHPExcel.php';

require_once 'PHPExcel_1.7.9_doc/Classes/PHPExcel/IOFactory.php';

// create new PHPExcel object

$objPHPExcel = new PHPExcel();

$objPHPExcel = new PHPExcel();

// writer already created the first sheet for us, let's get it

$objSheet = $objPHPExcel->getActiveSheet();

// rename the sheet

$objSheet->setTitle('Task Results');

// let's bold and size the header font and write the header

// as you can see, we can specify a range of cells, like here: cells from A1 to A4

$objSheet->getStyle('A1:AD1')->getFont()->setBold(true)->setSize(12);

$char = 65;

// write header]

for ($i=1;$i<=$NumberOfRows;$i++){

$col_name = mysqli_fetch_array($ColumnNames);

$objSheet->getCell(chr($char).'1')->setValue($col_name['Field']);

$char++;

}

// Now we need to get the data from the DB. While we have a row in the result:

$rowIterator=2; //our row number. We begin from 2 because the first one is the title.

while ($RowInfo = mysqli_fetch_array($data)){

//We will fill the information based on the amount of columns:

$char = 65; //we set the first char as column A

for ($i=0;$i

$objSheet->getCell(chr($char).$rowIterator)->setValue($RowInfo[$i]);

$char++;

}

$rowIterator++;

}

// autosize the columns

$char = 65;

for ($i=1;$i<=$NumberOfRows;$i++){

$objSheet->getColumnDimension(chr($char))->setAutoSize(true);

$char++;

}

// create the writer

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");

$objWriter->save('results.xlsx');

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值