2015-09-05 74 views
0

我在excel 2013中有小数点位置的问题。小于千的数量不会显示小数,否则在Excel单元格中显示小数。显示千位数(1233.00),如果少于千位则显示(763)。PHP和excel导出

$datatable = "<table><tr>"; 
while($nt=mysql_fetch_array($finalquery)) { 
     $amount= number_format($nt[3],2); 
     $datatable .= "<td>$amount</td>"; 
} 
$datatable = "</tr></table>"; 
$dtimestamp= time(); 
$ddatetime = date("G-i-s",$dtimestamp);  
$filename = "External_data_" . date('dmY') .":". $ddatetime .".xls"; 
header('Content-type: application/ms-excel'); 
header("Content-Disposition: attachment; filename=\"" . $filename . "\""); 
echo $datatable; 
+0

它是如何显示的小数位数超过千元。如果我更改为number_format($金额)。这将删除小数点以及excel保留这一点。有没有这方面的解决方案 – Altaf

+0

我在页面中显示相同的表格,并显示小数点。 – Altaf

+0

我通过使用google style =“mso-number-format:'0 \ .00';”了解了。但是这不起作用 – Altaf

回答

0

<?php //in moodle \t 
 
    mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass); 
 
    mysql_select_db($CFG->dbname); 
 
\t  \t 
 
\t $sql ="SELECT * 
 
FROM dddd c \t WHERE a.deleted = 0 AND mi.is_deleted='0' AND a.id!='2' and a.regtype!='trial' AND ra.roleid=5 \t \t GROUP BY userid"; 
 

 
\t 
 

 
    //$filename = $fname.".csv"; \t 
 
    
 
\t mysql_query("SET NAMES 'utf8'"); 
 
\t $rsSearchResults = mysql_query($sql) or die(mysql_error()); \t 
 
    
 
    
 
\t 
 
$xlsarr = array(); 
 
$xlshead = array(); 
 
$xls_lastcolumn='O'; 
 
\t $xl_aplha=createColumnsArray($xls_lastcolumn); \t 
 
\t 
 
    $nums=0; 
 
    \t 
 
\t for($i=0; $i<mysql_num_fields($rsSearchResults);$i++){ 
 
\t $column_name=mysql_fetch_field($rsSearchResults, $i); 
 
\t $xlshead[$xl_aplha[$nums]]=$column_name->name; 
 
\t $nums=$nums+1; 
 
\t } 
 
\t 
 
\t // $my_xlshead_add=array('15'=>'Registration Code'); 
 
\t \t // $_xlshead=array_merge($xlshead,$my_xlshead_add); 
 
\t \t \t 
 
     $xlsarr[] = $xlshead; 
 
    
 
//$csvid=0; 
 
    while ($l = mysql_fetch_assoc($rsSearchResults)) { 
 
\t \t 
 
\t \t $numk=0; 
 
    
 
\t \t $l['Password']=''; 
 
\t \t if($l['Activation Date']=='1970-01-01') 
 
\t \t { 
 
\t \t \t $actdate=''; 
 
\t \t } 
 
\t \t else 
 
\t \t { 
 
\t \t \t $actdate=date("Y/n/j",strtotime($l['Activation Date'])); 
 
\t \t } 
 
\t \t $l['Activation Date'] = $actdate; 
 
\t \t if($l['Expiration Date']=='1970-01-01') 
 
\t \t { 
 
\t \t \t $expdate=''; 
 
\t \t } 
 
\t \t else 
 
\t \t { 
 
\t \t \t $expdate=date("Y/n/j",strtotime($l['Expiration Date'])); 
 
\t \t } 
 
\t \t $l['Expiration Date'] = $expdate; 
 
\t \t 
 
\t \t 
 
\t \t 
 
\t \t $reg_code=get_regcode($l['userid']); 
 
\t \t // $my_array_add=array('15'=>$reg_code,'Registration Code'=>$reg_code); 
 
\t \t // $_array_merge=array_merge($l,$my_array_add); 
 
\t  
 
    \t \t // unset($l['userid']); 
 
\t \t // Dependent on select query 
 
\t \t $xlsdata[$xl_aplha[$numk]]=$l['Coloumn4']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn45']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn4Name']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn443']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn4']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn4Name']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn5Address']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn6Number']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn7']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn8']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn9']; 
 
\t \t $xlsdata[$xl_aplha[$numk=$numk+1]]=$l['Coloumn10Code']; 
 
\t 
 
\t \t 
 
\t \t 
 
\t \t 
 
\t \t $xlsarr[]=$xlsdata; 
 
\t // \t $csvid++; 
 
\t \t 
 
\t 
 
    
 
    } 
 
    
 
// \t pr($xlsarr); 
 
\t $fname = "Elsevier_Users"; 
 
\t \t 
 
\t \t \t //printExcel2($csvarr,"xls",$fname,false); 
 
\t \t \t $myfilename=$fname.'.xls'; 
 
\t \t \t myprintExcel($xlsarr,$xls_lastcolumn,$myfilename); 
 
\t \t 
 
\t \t \t  
 
?>///for excel import and export 
 
function myprintExcel($xlsarr,$LastColumn,$filesname){ 
 
    // global $CFG; 
 
// \t require_once($CFG->libdir.'/phpmailer/class.phpmailer.php'); 
 
    
 
    global $filePath; 
 
    ob_start(); 
 
    \t include ($filePath.'/PHPExcel/Classes/PHPExcel.php'); 
 
\t 
 
    
 
\t $objPHPExcel = new PHPExcel(); 
 
    
 
$objPHPExcel->getProperties()->setCreator("XLSX") 
 
\t \t \t \t \t \t \t ->setLastModifiedBy("XLSX") 
 
\t \t \t \t \t \t \t ->setTitle("XLSX") 
 
\t \t \t \t \t \t \t ->setSubject("XLSX") 
 
\t \t \t \t \t \t \t ->setDescription("XLSX") 
 
\t \t \t \t \t \t \t ->setKeywords("XLSX") 
 
\t \t \t \t \t \t \t ->setCategory("ElsevierUsers"); 
 

 
// Add some data 
 
$val=0; 
 
//echo '<pre>'; 
 
//print_r($xlsarr); 
 
//die(); 
 
foreach ($xlsarr as $arykey=>$aryLine) 
 
     { 
 
\t 
 
    $rowInd = $arykey+1; 
 
    
 
     
 
\t 
 
\t $lastcol=createColumnsArray($LastColumn); 
 
\t 
 
\t \t foreach ($lastcol as $key=>$char) { 
 
\t \t \t 
 
     // echo $aryLine[$i_count].$char.$arykey . "\n"; 
 
\t 
 
\t $objPHPExcel->setActiveSheetIndex(0)->setCellValue($char.$rowInd, $aryLine[$char]); 
 
     } 
 
    
 
$val++; \t \t \t 
 
\t } 
 
\t  
 
$objPHPExcel->getActiveSheet()->setTitle('ElsevierUsers'); 
 

 

 
// Set active sheet index to the first sheet, so Excel opens this as the first sheet 
 
$objPHPExcel->setActiveSheetIndex(0); 
 

 
// Query Database 
 

 
// Redirect output to a client’s web browser (Excel5) 
 
header('Content-Type: application/vnd.ms-excel'); 
 
header('Content-Disposition: attachment;filename="'.$filesname.'"'); 
 
header('Cache-Control: max-age=0'); 
 

 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
 
$objWriter->save('php://output'); 
 
exit; 
 
    
 
}