2
好的,下一个PHPExcel问题。我有一个用户填写的HTML表单,数据将被发送到数据库。所有这些都没有问题。我正在使用PHPExcel将该信息发送到Excel工作表,以便组织主席可以查看已发送的报告(他选择了他希望在Excel中使用的报告)。当他点击按钮时,信息被下载到Excel中。这一切工作正常,除了工作表的第一行由标题信息覆盖。我知道它是标题,因为如果我更改$标题并删除数组中的值,隐藏查询的一部分将显示出来。PHPExcel标题行覆盖第一项
我得到这个代码:http://phpexcel.codeplex.com/discussions/246121/
可能有一个编码错误,或者我可能没有上传所有的文件和类到互联网...
任何帮助表示赞赏。谢谢。
// connection with the database
$dbhost = "I removed this for privacy";
$dbuser = "I removed this for privacy";
$dbpass = "I removed this for privacy";
$dbname = "I removed this for privacy";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
// require the PHPExcel file
require 'Classes/PHPExcel.php';
// simple query
$query = "
SELECT dueDate, reporterName, program, noReportReason, recentActivity, impacted, fundsGenerated, fundsSpent, volunteers, input, potentialContacts, potentialSources
FROM reports
ORDER BY id
";
if ($result = mysql_query($query) or die(mysql_error()))
{
// Create a new PHPExcel object
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('Quarterly Project Reports');
// Loop through the result set
$rowNumber = 1;
while ($row = mysql_fetch_row($result))
{
$col = 'A';
foreach($row as $cell)
{
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
$col++;
}
$rowNumber++;
}
$rowNumber = 1;
$headings = array('Due Date','Reporter Name','Name of Program','No Report This Quarter',
'Recent Activity','Number of People Impacted','Funds Generated',
'Funds Spent and Fuding Sources','Volunteers Mobilized','WNP Input',
'Potential Contacts','Potential Sources');
$objPHPExcel->getActiveSheet()->fromArray(array($headings),NULL,'A'.$rowNumber);
$rowNumber++;
// Loop through the result set
while ($row = mysql_fetch_row($result))
{
$col = 'A';
foreach($row as $cell)
{
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
$col++;
}
$rowNumber++;
}
//bold Header row
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setBold(true);
//wrap column D
$objPHPExcel->getActiveSheet()->getStyle('D1:D'.$objPHPExcel->getActiveSheet()->getHighestRow())->getAlignment()->setWrapText(true);
//wrap column E
$objPHPExcel->getActiveSheet()->getStyle('E1:E'.$objPHPExcel->getActiveSheet()->getHighestRow())->getAlignment()->setWrapText(true);
//set header row height
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(20);
//set column widths
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(50);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(30);
// Save as an Excel BIFF (xls) file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="WNPQuarterlyReports.xls"');
$objWriter->save('php://output');
exit();
}
echo 'a problem has occurred... no data retrieved from the database';
感谢您的快速回答。我删除了一个循环,必须复制和粘贴太多次。这解决了我的问题。很高兴有你的伟大的眼睛。 – tehlivi 2012-07-05 17:49:16