首页 > 解决方案 > 表格不考虑宽度 OpenOffice / MsWord

问题描述

我正在尝试在我的 docx 文档中创建一些表格。当我用 OpenOffice Writer 打开我的文档时,一切都很好,不幸的是,我的表格宽度和其他一些属性在 MsWord 中没有得到尊重。

1)我创建了两个具有相同大小和相同单元格但它们未对齐的表格

作家

单词

代码 :

$table = $section->addTable();
$table->addRow(100);
$table->addCell(10000, array( 'borderBottomSize' => 1, 'borderBottomColor' => '000000'))->addText('DISAMINA', array('bold' => true), array('align' => 'center'));
$section->addTextBreak(2);
$table = $section->addTable();
$table->addRow(100);
$table->addCell(4000, array('borderRightSize' => 1, 'borderBottomSize' => 1, 'borderRightColor' => '000000'))->addText('Stato Reale del Rischio', array('bold' => true), array('align' => 'right'));
$htmlWriter::addHtml( $table->addCell(6000, array()),  "<div style='text-align: justify;line-height: 1.5;'>".$appr->relazione->stato_reale_rischio."</div>", false, false);

$table->addRow(100);
$table->addCell(4000, array('borderRightSize' => 1, 'borderBottomSize' => 1, 'borderRightColor' => '000000'))->addText('Dichiarazioni rese dall’Assicurato', array('bold' => true), array('align' => 'right'));
$htmlWriter::addHtml( $table->addCell(6000, array()),  "<div style='text-align: justify;line-height: 1.5;'>".$appr->relazione->dichiarazioni_rese."</div>", false, false);

$table->addRow(100);
$table->addCell(4000, array('borderRightSize' => 1, 'borderBottomSize' => 1, 'borderRightColor' => '000000'))->addText('Meccanica in cui si è svolto il sinistro', array('bold' => true), array('align' => 'right'));
$htmlWriter::addHtml( $table->addCell(6000, array()),  "<div style='text-align: justify;line-height: 1.5;'>".$appr->relazione->meccanica."</div>", false, false);

$table->addRow(100);
$table->addCell(4000, array('borderRightSize' => 1, 'borderBottomSize' => 1, 'borderRightColor' => '000000'))->addText('Caratteristiche mezzi di chiusura', array('bold' => true), array('align' => 'right'));
$htmlWriter::addHtml( $table->addCell(6000, array()),  "<div style='text-align: justify;line-height: 1.5;'>".$appr->relazione->caratteristiche_mezzi."</div>", false, false);

$table->addRow(100);
$table->addCell(4000, array('borderRightSize' => 1, 'borderBottomSize' => 1, 'borderRightColor' => '000000'))->addText('Operatività garanzia', array('bold' => true), array('align' => 'right'));
$htmlWriter::addHtml( $table->addCell(6000, array()),  "<div style='text-align: justify;line-height: 1.5;'>".$appr->relazione->op_garanzia."</div>", false, false);



$section->addTextBreak(2);
$table = $section->addTable();
$table->addRow(100);
$table->addCell(10000, array( 'borderBottomSize' => 1, 'borderBottomColor' => '000000'))->addText('DOCUMENTI ESAMINATI', array('bold' => true), array('align' => 'center'));

$table = $section->addTable();
$table->addRow(100);

$htmlWriter::addHtml( $table->addCell(4000, array('borderRightSize' => 1, 'borderRightColor' => '000000')), '', false, false);
$htmlWriter::addHtml( $table->addCell(6000, array()), "<div style='text-align: justify;line-height: 1.5;'>".$appr->relazione->documenti_esaminati."</div>", false, false);
$section->addTextBreak(2);

$section->addPageBreak();

2)我在 MsWord 中创建了不同的内容并且不尊重宽度

作家

字词

$table = $section->addTable();

$table->addRow(100);
$table->addCell(2000, array('borderRightSize' => 1, 'borderBottomSize' => 1, 'borderRightColor' => '000000'))->addText('Partite Interessate',  array('size' => 10, 'bold'=>true),array('align' => 'right'));
$table->addCell(8000, array())->addText('', $regularFont);

$table->addRow(100);

$table->addCell(2000, array())->addText('',  array('size' => 10, 'bold' => true), array('align' => 'center'));
$table->addCell(2666, array('borderSize' => 1, 'borderColor' => '000000','bgColor'=>'D3D3D3'))->addText('Descrizione',  array('size' => 10, 'bold' => true), array('align' => 'center'));
$table->addCell(2666, array('borderSize' => 1, 'borderColor' => '000000','bgColor'=>'D3D3D3'))->addText('Forma',  array('size' => 10, 'bold' => true), array('align' => 'center'));
$table->addCell(2666, array('borderSize' => 1, 'borderColor' => '000000','bgColor'=>'D3D3D3','gridSpan' => 2))->addText('Capitale Assicurato',  array('size' => 10, 'bold' => true), array('align' => 'center'));

foreach($appr->partiteInteressate as $partita){


$table->addRow(100);
$table->addCell(2000, array())->addText('',  array('size' => 10, 'bold' => true));

$table->addCell(2666, array('borderSize' => 1, 'borderColor' => '000000'))->addText($partita->descrizione,  array('size' => 10, 'bold' => true) ,array('align' => 'left'));
$table->addCell(2666, array('borderSize' => 1, 'borderColor' => '000000'))->addText($partita->forma,  array('size' => 10, 'bold' => true),array('align' => 'center'));
$table->addCell(666, array('borderSize' => 1, 'borderColor' => '000000'))->addText("€.", array('size' => 10, 'bold' => true) ,array('align' => 'left'));
$table->addCell(2000, array('borderSize' => 1, 'borderColor' => '000000'))->addText(number_format($partita->capitale_assicurato ,2, '.', ',') ,  array('size' => 10, 'bold' => true) , array('align' => 'right'));
}

$section->addTextBreak(2);

$table = $section->addTable();

$table->addRow(100);
$table->addCell(2000, array('borderRightSize' => 1, 'borderBottomSize' => 1))->addText('Sottolimiti di Polizza',  array('size' => 10), array('align' => 'left'));
$table->addCell(8000, array())->addText('', $regularFont);

$table->addRow(100);
$table->addCell(2000, array())->addText('', $header, array('align' => 'center'));
$table->addCell(800, array('borderSize' => 1, 'borderColor' => '000000','bgColor'=>'D3D3D3'))->addText('% C.A.',  array('size' => 10, 'bold' => true), array('align' => 'center'));
$table->addCell(2400, array('borderSize' => 1, 'borderColor' => '000000','bgColor'=>'D3D3D3','gridSpan' => 2))->addText('Limite Indennizzo',  array('size' => 10, 'bold' => true), array('align' => 'center'));
$table->addCell(2400, array('borderSize' => 1, 'borderColor' => '000000','bgColor'=>'D3D3D3','gridSpan' => 2))->addText('Franchigia',  array('size' => 10, 'bold' => true), array('align' => 'center'));
$table->addCell(2400, array('borderSize' => 1, 'borderColor' => '000000','bgColor'=>'D3D3D3','gridSpan' => 2))->addText('Indennizzo Massimo',  array('size' => 10, 'bold' => true), array('align' => 'center'));

foreach($appr->garanzieAttivate as $g){


$table->addRow(100);
$table->addCell(2000, array('borderSize' => 1, 'borderColor' => '000000'))->addText($g->descrizione, array('size' => 10), array('align' => 'right'));

$ca = $g->tipologia_limite == 'Percentuale' ?  $g->limite : "" ;

$table->addCell(800, array('borderSize' => 1, 'borderColor' => '000000'))->addText($ca , array('size' => 10, 'bold' => true), array('align' => 'center'));

$table->addCell(466, array('borderSize' => 1, 'borderColor' => '000000'))->addText("€.", array('size' => 10, 'bold' => true) ,array('align' => 'left'));
$table->addCell(1934, array('borderSize' => 1, 'borderColor' => '000000'))->addText(number_format($g->limite_indennizzo ,2, '.', ','), array('size' => 10, 'bold' => true), array('align' => 'right'));
$table->addCell(466, array('borderSize' => 1, 'borderColor' => '000000'))->addText("€.", array('size' => 10, 'bold' => true) ,array('align' => 'left'));
$table->addCell(1934, array('borderSize' => 1, 'borderColor' => '000000'))->addText(number_format($g->franchigia ,2, '.', ','), array('size' => 10, 'bold' => true), array('align' => 'right'));
$table->addCell(466, array('borderSize' => 1, 'borderColor' => '000000'))->addText("€.", array('size' => 10, 'bold' => true) ,array('align' => 'left'));
$table->addCell(1934, array('borderSize' => 1, 'borderColor' => '000000'))->addText(number_format($g->max_indennizzo ,2, '.', ','), array('size' => 10, 'bold' => true), array('align' => 'right'));
}


$section->addPageBreak();

我尝试了许多解决方案 \PhpOffice\PhpWord\Style\Table::LAYOUT_FIXED、单元格宽度等,但没有一个有效。

任何帮助表示赞赏....

提前致谢

标签: phplaravelms-wordphpwordopenoffice-writer

解决方案


推荐阅读