Php 如何调整单元格宽度,使其不会在电子表格\u Excel\u Writer中剪切单词
我正在尝试使用Pear附带的电子表格Excel书写器创建Excel工作表。Php 如何调整单元格宽度,使其不会在电子表格\u Excel\u Writer中剪切单词,php,excel,pear,export-to-excel,Php,Excel,Pear,Export To Excel,我正在尝试使用Pear附带的电子表格Excel书写器创建Excel工作表。 工作表已创建,一切正常,但“我的文字”正在被剪切,单元格未调整宽度以容纳完整的文字。 我尝试用Office 2007打开它。 为此,我必须在电子表格\u Excel\u Writer\u Format对象中输入哪些值?我不相信你可以用S\u E\u W实现这一点。如果它在列/行宽度/高度方面与Excel的“自动调整”功能相当,那就太好了,但是它没有。你只能用$worksheet->setColumn()将列设置为特定的宽
工作表已创建,一切正常,但“我的文字”正在被剪切,单元格未调整宽度以容纳完整的文字。
我尝试用Office 2007打开它。
为此,我必须在电子表格\u Excel\u Writer\u Format对象中输入哪些值?我不相信你可以用S\u E\u W实现这一点。如果它在列/行宽度/高度方面与Excel的“自动调整”功能相当,那就太好了,但是它没有。你只能用
$worksheet->setColumn()
将列设置为特定的宽度
您可能需要调查切换到。它仍在积极开发中,支持最新的Excel文件格式以及更完整的API。S_E_W基本上已经死在水里了,现在应该被视为弃置软件。我不相信你能用S_E_W做到这一点。如果它在列/行宽度/高度方面有Excel的“自动调整”功能,那就太好了,但它没有。你只能用
$worksheet->setColumn()
将列设置为特定的宽度
您可能需要调查切换到。它仍在积极开发中,支持最新的Excel文件格式以及更完整的API。S_E_W基本上死在水里了,现在应该被视为弃置品。我还需要在
电子表格\u Excel\u Writer
中自动调整行高。显然,在工作表的开头(高度无自动调整)或末尾(高度有自动调整)设置“工作表::保护(字符串$password)”
标志会有所不同 我还需要在电子表格\u Excel\u Writer
中自动调整行高。显然,在工作表的开头(高度无自动调整)或末尾(高度有自动调整)设置“工作表::保护(字符串$password)”
标志会有所不同 我有一个解决办法
$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));
}
$columns='NOMBRE,APELLIDO,CEDULA';
$arrayColumns=array('NOMBRE'、'APELLIDO'、'CEDULA');
$format=$report->工作簿->addFormat(数组('Align'=>'left','size'=>10','Color'=>0));
$col=2;
$row=5;
foreach($arrayColumns作为$columnName){
$report->worksheet->write($row,$col,$columnName,$format);
$arrayColumnsWidth[$col]=strlen($columnName);
$col++;
}
$sql=“选择$columns
“从表中”;
$objConnectionSQL->prepareSql($sql);
$rs=$objConnectionSQL->executeQuery();
$row++//它把我带到下一排
而($data=$objConnectionSQL->getRows($rs)){
$col=2;
foreach($arrayColumns作为$columnName){
$report->worksheet->write($row,$col,$data[$columnName],$format);
if($arrayColumnsWidth[$col]$valWidth){
$this->worksheet->setColumn($keyCol,$keyCol,floor($valWidth));
}
刚开始的时候有点复杂,但现在我的方法是在每一列上动态设置宽度。
我希望它能帮助别人。我有一个解决办法
$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));
}
$columns='NOMBRE,APELLIDO,CEDULA';
$arrayColumns=array('NOMBRE'、'APELLIDO'、'CEDULA');
$format=$report->工作簿->addFormat(数组('Align'=>'left','size'=>10','Color'=>0));
$col=2;
$row=5;
foreach($arrayColumns作为$columnName){
$report->worksheet->write($row,$col,$columnName,$format);
$arrayColumnsWidth[$col]=strlen($columnName);
$col++;
}
$sql=“选择$columns
“从表中”;
$objConnectionSQL->prepareSql($sql);
$rs=$objConnectionSQL->executeQuery();
$row++//它把我带到下一排
而($data=$objConnectionSQL->getRows($rs)){
$col=2;
foreach($arrayColumns作为$columnName){
$report->worksheet->write($row,$col,$data[$columnName],$format);
if($arrayColumnsWidth[$col]$valWidth){
$this->worksheet->setColumn($keyCol,$keyCol,floor($valWidth));
}
刚开始的时候有点复杂,但现在我的方法是在每一列上动态设置宽度。
我希望它能对其他人有所帮助。PHPExcel确实支持对列和行以及定义的宽度和高度进行自动调整。感谢对PHPExcel的参考,我将在我(庞大)项目的下一个重构周期中将我的代码转换为该版本。同时,我使用了您建议的方法,在填写工作表中的所有数据后,计算每列的最大宽度,并在最后应用它。PHPExcel确实支持对列和行以及定义的宽度和高度进行自动调整。感谢PHPExcel的参考,我将在我的(巨大的)项目的下一个重构周期中把我的代码转换成那样。同时,我使用了您建议的方法,计算每列的最大宽度,并在工作表中填充所有数据后在最后应用它。新的excel和类似excel的软件知道如何使用纯HTML。今天我把所有的东西都放在HTML中,让Excell来完成繁重的工作。我的生活变得如此美好…新的excel,类似excel的软件知道如何使用纯HTML。今天我把所有的东西都放进了HTML