如何调整单元格的宽度,以便它们不会在Spreadsheet_Excel_Writer中剪切单词

我正在尝试使用Pear附带的Spreadsheet_Excel_Writer来创build一个Excel工作表。
表单被创build,并且一切正常,除了我的单词正在被剪切,单元格不会调整其宽度以适应完整的单词。
我试图用Office 2007打开它。
我必须将哪些值放入Spreadsheet_Excel_Writer_Format对象中?

我不相信你可以用S_E_W做到这一点。 这将是很好,如果它有相当于Excel的“适合自动”的列/行宽/高,但它不 – 你只能设置一个列到特定的宽度与$worksheet->setColumn()

您可能想要调查切换到PHPExcel 。 目前仍在积极开发中,支持最新的Excel文件格式,以及更完整的API。 S_E_W实质上已经死在水中,现在被认为是放弃了。

我还需要在Spreadsheet_Excel_Writer自动调整行高。 显然,它在"Worksheet::protect ( string $password )"的开始处(无高度自适应)或最后(高度自动调整"Worksheet::protect ( string $password )"设置"Worksheet::protect ( string $password )"标志是有区别的。

我有一个解决scheme。

 $columns = 'NOMBRE,APELLIDO,CEDULA'; $arrayColumns = array('NOMBRE','APELLIDO','CEDULA'); $format = $report->workbook->addFormat(array('Align' => 'left', 'size' => 10, 'Color' => 0)); $col = 2; $row = 5; foreach($arrayColumns as $columnName){ $report->worksheet->write($row, $col, $columnName, $format); $arrayColumnsWidth[$col] = strlen($columnName); $col++; } $sql = "SELECT $columns FROM table" ; $objConnectionSQL->prepareSql($sql); $rs = $objConnectionSQL->executeQuery(); $row++;//it brings me to the next row while ($data = $objConnectionSQL->getRows($rs)) { $col = 2; foreach($arrayColumns as $columnName){ $report->worksheet->write($row, $col, $data[$columnName], $format); if($arrayColumnsWidth[$col] < strlen($data[$columnName])){ $arrayColumnsWidth[$col] = strlen($data[$columnName]); } $col++; } $row++; } foreach($arrayColumnsWidth as $keyCol => $valWidth){ $this->worksheet->setColumn($keyCol,$keyCol,floor($valWidth)); } 

开始时有点复杂,但现在是我的方法,使每个列的宽度dynamic。 我希望这会帮助别人。