2014-02-06 26 views
0

如何根据数据长度在我的excel报告中使用PHPexcel调整列宽?....以及如何使excel中的所有数据居中?居中,并根据数据长度调整excel列

enter image description here

当前代码:

<?php 
if (!isset($_POST['send'])) { ?> 
    <!DOCTYPE html> 
    <html> 
    <head> 
    <title>test</title> 
    </head> 
    <body> 
<?php } else { 
    require_once 'C:\xampp\htdocs\test\Classes\PHPExcel\IOFactory.php'; 
    $filename = 'file.xlsx'; 
    $title = $_POST['title']; 
    mysql_connect("localhost","root","") or die ("cant connect!"); 
    mysql_select_db("test") or die ("cant find database!"); 

    $objReader = PHPExcel_IOFactory::createReader('Excel2007'); 
    $objReader->setReadDataOnly(true); 

    $objPHPExcel = $objReader->load($filename); 
    $objWorksheet = $objPHPExcel->getActiveSheet(); 
    $objWorksheet = $objPHPExcel->setActiveSheetIndex(0); 

    $result = mysql_query("SELECT * FROM score"); 
    if(isset($_POST['send'])){ 

     $headings = array(
      'ID', 
      'NAME', 
      'SCORE 1', 
      'SCORE 2', 
      'OTHER QUALITIES', 
      'INTERVIEW', 
      'TOTAL', 
      'AIC', 
      'BATCHCODE', 
     ); 
     $objPHPExcel->getActiveSheet()->fromArray($headings, null, 'A1'); 
     $row = 2; 
     while($rows = mysql_fetch_row($result)){ 
      $objPHPExcel->getActiveSheet()->fromArray($rows, null, 'A' . $row); 
      $row++; 
     } 
    } 

    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
    header('Content-Disposition: attachment;filename="'.$title.'.xlsx"'); 
    header('Cache-Control: max-age=0'); 

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
    $objWriter->save('php://output'); 
} 
if (!isset($_POST['send'])) { ?> 

    <form id="form1" name="form1" method="post" action="" > 
    <input name="title" type="text" id="title" value="title" /> 
    <input type="submit" name="send" value="send to excel" id="send" /> 
    </form> 
    </body> 
    </html> 
<?php } 

我想是......列将根据存储的数据长度自动调节...,使DATAS在中心。

回答

1

显影剂文件的第4.6.28(题为“设置列的宽度”)示出了如何设置一个列宽,与设置它的一个例子,以自动调整其宽度来拟合数据:

如果您希望PHPExcel执行自动宽度计算,请使用以下代码。 PHPExcel将近似列的宽度为最宽列值。

$objPHPExcel->getActiveSheet() 
    ->getColumnDimension('E')->setAutoSize(true); 

对齐(如中心)可以按照显影剂文件的第4.6.18的指令(题为“格式化单元”)被设置

$objPHPExcel->getActiveSheet() 
    ->getStyle('C2:I5') 
    ->getAlignment() 
    ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);