PHPExcel Class을 사용하여 스프레드 시트를 만듭니다. 데이터 열이 여러 개 있습니다. 각 열의 가장 긴 데이터 값의 크기를 사용하려면 autosize 메서드를 사용하고 있습니다.PHPExcel을 사용할 때 이미지 크기가 자동으로 늘어나는 이유는 무엇입니까?
require_once '../../Classes/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
// Adding values for Header Row
$objPHPExcel->getActiveSheet()
->setCellValue('A3', '#')
->setCellValue('B3', 'Name')
->setCellValue('C3', 'Email')
->setCellValue('D3', 'Phone')
->setCellValue('E3', 'Address')
->setCellValue('F3', 'Date Registered');
//Setting column values to the Listers Spreadsheet
$counter = 4;
$entries_num = 1;
//while($listers_export_row = $listers_export_result->fetch_assoc()) {
while($listers_export_row = $listers_export_result->fetch(PDO::FETCH_ASSOC)) {
//Adding Numbers to Listers Spreadsheet (Column A)
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$counter, $entries_num);
//Adding Names to Listers Spreadsheet (Column B)
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$counter, $listers_export_row['first_name'].' '.$listers_export_row['last_name']);
//Adding Email to Listers Spreadsheet (Column C)
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$counter, $listers_export_row['email']);
//Adding Phone to Listers Spreadsheet (Column D)
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$counter, '('.$listers_export_row['phone_prefix'].')'.$listers_export_row['phone_first'].'-'.$listers_export_row['phone_last']);
//Adding Address to Listers Spreadsheet (Column E)
$address = $listers_export_row['address'];
if($listers_export_row['apt'] != '') { $address .= ' '.$listers_export_row['apt']; }
$address .= ', '.$listers_export_row['city'].', '.$listers_export_row['state'].' '.$listers_export_row['zip_1'];
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E'.$counter, $address);
//Adding Date Registered to Listers Spreadsheet (Column F)
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F'.$counter, date('m/d/y',$listers_export_row['date_created']));
$counter++;
$entries_num++;
}
// Forces the spreadsheet to take the size of the longest value
for ($col = 'A'; $col != 'G'; $col++) { //Runs through all cells between A and E and sets to autosize
$objPHPExcel->getActiveSheet()->getColumnDimension($col)->setAutoSize(true);
}
// Add a drawing to the worksheet
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setResizeProportional(false);
$objDrawing->setName('Logo');
$objDrawing->setDescription('Logo');
$objDrawing->setPath('../images/crl_logo.png');
$objDrawing->setHeight(35);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Accounts - '.date('m.d.y',time()).'.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
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');
exit;
이 (그것은 단지 첫 번째 열 한 넓게해야한다)로 발생되는 것입니다 :
나는 제거한 -
편집은 여기에서 자세한 내용을 보여주는 내 전체 코드 자동 크기 조정 방법은 올바른 크기를 사용하므로 이미지 크기에 영향을줍니다.
이미지에서 자동 크기 조정을 제거하지만 데이터 열에 그대로두면 어떻게됩니까?
자세한 정보를 입력하십시오. 어느 작가? 모든 작가에게 똑같은가요? 이미지 배치의 정확한 세부 사항은 무엇입니까? (이름, 설명, 경로 및 워크 시트를 표시하고 있지만 좌표, 높이, 너비, 오프셋 등에 대한 값을 표시하지 않음) 또는 기본값으로 남겨 두었습니까? –
'$ objDrawing-> setResizeProportional (false);을 추가해보십시오. –
답장 표시를 해주셔서 감사합니다. Excel5 작가를 사용하고 있습니다. 난 그냥 Excel2007로 그것을 테스트하고 잘 작동합니다. Excel5에서 작동하지 않는 이유를 알고 있습니까? – zeckdude