我正在尝试使用PHPExcel,并根据其示例编写了此代码:
<?php
require_once "QueryHandler.php";
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
/** Include PHPExcel */
require_once 'PHPExcel/Classes/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Lajos Arpad")
->setLastModifiedBy("Lajos Arpad")
->setTitle("Import Test Foto")
->setSubject("Import Test Foto")
->setDescription("Import Test Foto")
->setKeywords("office PHPExcel php")
->setCategory("Test result file");
// Add some data
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'cod_comanda')
->setCellValue('B1', 'Foto 1')
->setCellValue('C1', 'Foto 2')
->setCellValue('D1', 'Foto 3')
->setCellValue('E1', 'Foto 4')
->setCellValue("F1", "Foto 5")
->setCellValue("G1", "Foto 6")
->setCellValue("H1", "Foto 7");
$objPHPExcel->getActiveSheet()->setTitle('Import Test Foto');
$toContinue = true;
$limit = 0;
$size = 100;
$pictures = QueryHandler::buildSelect("testtable", array("cod_comanda", "poze"), "Created", $limit, $size);
$index = 2;
$activeSheet = $objPHPExcel->getActiveSheet();
$columns = array("B", "C", "D", "E", "F", "G", "H");
foreach ($pictures as $picture) {
$activeSheet->setCellValue("A".$index, $picture["cod_comanda"]);
if (strlen($picture["poze"])) {
$items = explode(",", $picture["poze"]);
$itemCount = count($items);
for ($innerIndex = 0; $innerIndex < $itemCount; $innerIndex++) {
$activeSheet->setCellValue($columns[$innerIndex].$index, $items[$innerIndex]);
}
}
$index++;
}
// Save Excel 2007 file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save("export/Import Test Foto.xlsx");
它输出的东西可以在第一张图片上看到。我希望能够像第二张图片中所示那样导出它,其中涉及Foto列靠近A列中的几行。请注意,当前代码只导出文本数据,而最后我需要导出图像,但我想我需要弄清楚如何首先修改细胞相对于第一列细胞的相对高度。我怎样才能做到这一点?
答案 0 :(得分:1)
如果您知道图像的分辨率,那么您可以使用PHPExcel_Shared_Drawing
类中的方法将像素转换为单元格尺寸(),反之亦然