PhpSpreadsheet XLSXには境界線がありますが、mPDFクラスのPDFには境界線がありません

user3276142

phpspreadsheetを使用して2つの形式(xlsxとpdf)でレポートを生成しようとしています。コードを実行してxlsxに保存すると、ドキュメントのテーブルに境界線が表示されますが、PDFに保存すると境界線が表示されません。他のすべてのものは両方で生成されます。まず、古いバージョンのphpexcelv5.xとmpdfv.5xおよびphpv5.6.xを使用しました。PHP7.1に移行しました。mpdf 7x phpspreadsheet 7x、それが問題を解決することを願っています。また、さまざまなボーダースタイルのBORDER_THIN BORDER_MEDIUM BORDER_HAIRを試しましたが、うまくいきませんでした。

誰かが私が間違っていることを知っていますか?

phpspreadsheetmpdfボーダーなし

    <?php
    enter code here
    $fileformat = $_GET['fileformat'];

    $d = new DateTime('2018-09'); 
    $lastDayOfCurrentMonth = $d->format( 't/m/Y' );

    $resultset = array();

        $data1 = array();
        $data1['id'] = '1';
        $data1['description'] = 'product 1';
        $data1['code'] = '32165478';
        $data1['value1'] = '0.12';
        $data1['value2'] = '0.54';
        array_push($resultset, $data1);

        $data2 = array();
        $data2['id'] = '2';
        $data2['description'] = 'product 2';
        $data2['code'] = '32165478';
        $data2['value1'] = '3.56';
        $data2['value2'] = '3.23';
        array_push($resultset, $data2);

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
use PhpOffice\PhpSpreadsheet\Helper\Sample;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Border;
error_reporting(E_ALL);

require_once $_SERVER["DOCUMENT_ROOT"] . "/dds/vendor/autoload.php";

$helper = new Sample();

if ($helper->isCli()) {
   return;
}

$spreadsheet = new Spreadsheet();

$spreadsheet->getProperties()->setCreator("a.ro")
                             ->setLastModifiedBy("a.ro")
                             ->setTitle("asdfsdaf")
                             ->setSubject("asdfsdaf")
                             ->setDescription("asdfsdaf")
                             ->setKeywords("asdfsdaf")
                             ->setCategory("asdfsdaf");

$spreadsheet->getActiveSheet()
    ->getPageMargins()->setTop(1);
$spreadsheet->getActiveSheet()
    ->getPageMargins()->setRight(0.75);
$spreadsheet->getActiveSheet()
    ->getPageMargins()->setLeft(0.75);
$spreadsheet->getActiveSheet()
    ->getPageMargins()->setBottom(1);

$spreadsheet->getActiveSheet()
    ->getPageSetup()
    ->setRowsToRepeatAtTopByStartAndEnd(6, 7);

$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(3.86);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(56.86);
$spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(5);
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(10.86);
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(10.86);


$spreadsheet->getActiveSheet()->mergeCells('A1:D1');
$spreadsheet->getActiveSheet()->setCellValue('A1', 'HEADER row1');
$spreadsheet->getActiveSheet()->mergeCells('A2:D2');
$spreadsheet->getActiveSheet()->setCellValue('A2', 'HEADER row2');

$spreadsheet->getActiveSheet()->mergeCells('A3:E3');
$spreadsheet->getActiveSheet()->setCellValue('A3', 'TITLE');

$styleArray = array(
    'font'  => array(
        'bold'  => true,
        'color' => array('rgb' => '000000'),
        'size'  => 14,
        'name'  => 'Verdana'
    ),
    'alignment' => array(
            'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
    )
    );

$spreadsheet->getActiveSheet()->getStyle('A3')->applyFromArray($styleArray);

$spreadsheet->getActiveSheet()->mergeCells('A4:E4');
$spreadsheet->getActiveSheet()->setCellValue('A4', $lastDayOfCurrentMonth);
$spreadsheet->getActiveSheet()->getStyle('A4')->applyFromArray(array('alignment' => array('horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER)));
$spreadsheet->getActiveSheet()->mergeCells('A5:B5');
$spreadsheet->getActiveSheet()->setCellValue('A5', "code 02");
$spreadsheet->getActiveSheet()->setCellValue('E5', "- euro -");

$spreadsheet->getActiveSheet()->setCellValue('A6', 'ID');
$spreadsheet->getActiveSheet()->setCellValue('B6', 'DESCRTIPTION');
$spreadsheet->getActiveSheet()->setCellValue('C6', 'Code');
$spreadsheet->getActiveSheet()->setCellValue('D6', 'Value1');
$spreadsheet->getActiveSheet()->setCellValue('E6', 'Value2');
$spreadsheet->getActiveSheet()->getRowDimension(6)->setRowHeight(40);

$styleArrayTabel = array(
    'alignment' => array(
            'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
            'vertical'   => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
             'rotation'   => 0,
             'wrap'       => true
    ),
    'borders' => array(
        'allBorders' => array(
              'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, //BORDER_THIN BORDER_MEDIUM BORDER_HAIR
              'color' => array('rgb' => '000000')
        )
      )
    );
$spreadsheet->getActiveSheet()->getStyle('A6:E6')->applyFromArray($styleArrayTabel);
$spreadsheet->getActiveSheet()->setCellValue('A7', 'A');
$spreadsheet->getActiveSheet()->setCellValue('B7', 'B');
$spreadsheet->getActiveSheet()->setCellValue('C7', 'C');
$spreadsheet->getActiveSheet()->setCellValue('D7', 'D');
$spreadsheet->getActiveSheet()->setCellValue('E7', 'E');
$spreadsheet->getActiveSheet()->getStyle('A7:E7')->applyFromArray($styleArrayTabel);

$baseRow = 9;
foreach($resultset as $r => $dataRow) {
    $row = $baseRow + $r;
    $spreadsheet->getActiveSheet()->insertNewRowBefore($row,1);

    $spreadsheet->getActiveSheet()->setCellValue('A'.$row, $dataRow['id'])
                                  ->setCellValue('B'.$row, $dataRow['description'])
                                  ->setCellValue('C'.$row, $dataRow['code'])
                                  ->setCellValue('D'.$row, $dataRow['value1'])
                                  ->setCellValue('E'.$row, $dataRow['value2']);

    $spreadsheet->getActiveSheet()->getRowDimension($row)->setRowHeight(-1);
    $spreadsheet->getActiveSheet()->getStyle('A'.$row.':E'.$row)->applyFromArray(array('borders' => array('allborders' => array('style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN))));
    $spreadsheet->getActiveSheet()->getStyle('A'.$row)->applyFromArray(array('alignment' => array('horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,'vertical'   => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER)));
    $spreadsheet->getActiveSheet()->getStyle('B'.$row)->applyFromArray(array('alignment' => array('horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT,'vertical'   => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,'wrapText' => true)));
    $spreadsheet->getActiveSheet()->getStyle('C'.$row)->applyFromArray(array('alignment' => array('horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,'vertical'   => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER)));
    $spreadsheet->getActiveSheet()->getStyle('D'.$row)->applyFromArray(array('alignment' => array('horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT,'vertical'   => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER)));
    $spreadsheet->getActiveSheet()->getStyle('D'.$row)->getNumberFormat()->setFormatCode('#0');
    $spreadsheet->getActiveSheet()->getStyle('E'.$row)->applyFromArray(array('alignment' => array('horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT,'vertical'   => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER)));
    $spreadsheet->getActiveSheet()->getStyle('E'.$row)->getNumberFormat()->setFormatCode('#0');

}
$spreadsheet->getActiveSheet()->removeRow($baseRow-1,1);

$spreadsheet->getActiveSheet()->setTitle('Anexa2');
$spreadsheet->getActiveSheet()->setShowGridLines(false);

$spreadsheet->setActiveSheetIndex(0);

$helper->log('Hide grid lines');
$spreadsheet->getActiveSheet()->setShowGridLines(false);

$helper->log('Set orientation to landscape');
$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(PageSetup::ORIENTATION_LANDSCAPE);


if($fileformat == 'pdf')
{
    $helper->log('PDF file format selected');
    $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, "Mpdf");
    $writer->save("aaa.pdf");
    exit();
} elseif ($fileformat == 'xlsx')
{
    $helper->log('XLSX file format selected');
    $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, "Xlsx");
    $writer->save("aaa.xlsx");
    exit();
}
else {  $helper->log('no file format selected'); }

?>
user3276142

setShowGridLines(false)を削除すると、mPDFレンダリングの問題が解決します

//$spreadsheet->getActiveSheet()->setShowGridLines(false);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

PHPSpreadsheet-「PHPExcel_Worksheet_Drawing」はどこにありますか

分類Dev

行にデータがある場合は境界線がありますが、空の場合は境界線がありません

分類Dev

選択ボックスに境界線がありません

分類Dev

私はreact-bootstrap-table-nextに境界線がありません

分類Dev

ttk.OptionMenuにはアウトライン/境界線がありません

分類Dev

WKWebViewは境界線の内側にPDFを表示します、境界線は必要ありません

分類Dev

上部のdivには他の境界線がありますが、下部のdivの境界線は表示されます

分類Dev

Windows 10では、一部のFormBorderStylesに境界線がありません

分類Dev

PhpExcelからPhpSpreadsheetへの移行

分類Dev

CSSの境界線の下部に角がありません

分類Dev

PDFビュー(XSLT)にCALSテーブルの境界線がありません

分類Dev

PhpOffice / PhpSpreadsheet "クラスPhpOffice \ PhpSpreadsheet \ IOFactoryを読み込めませんでした"

分類Dev

行スパンのあるテーブルには境界線がありません

分類Dev

React NativeTextInputには常に黒い境界線があります

分類Dev

Divの下部に境界線があり、パディングやマージンはありません

分類Dev

Vuetfiyv-text-labelに境界線がありません

分類Dev

Android 2.3.6では、境界線の半径とボックスの影は効果がありません。

分類Dev

Androidのxmlボタンには細かい境界線があります

分類Dev

BootstrapNavbarに奇妙なヘアライン境界線があります

分類Dev

パッケージphp7.0-phpoffice / phpspreadsheetが見つかりません

分類Dev

CardboardUnity-ステレオ画像に黒い境界線がありません

分類Dev

CSS-textareaの不透明度:テキストですが境界線ではありません

分類Dev

geom_tileの境界線がコーナーにありません

分類Dev

CSS3は境界線がありません。つまり、線が隅で交わっていません。

分類Dev

PhpSpreadsheet:SUMIF式が機能していません

分類Dev

破線の境界線がマージされないようにする方法はありますか?

分類Dev

phpspreadsheetでの動的セルマージ

分類Dev

PhpSpreadsheetはセルの背景色を白に設定します

分類Dev

テーブルの境界線がありません

Related 関連記事

  1. 1

    PHPSpreadsheet-「PHPExcel_Worksheet_Drawing」はどこにありますか

  2. 2

    行にデータがある場合は境界線がありますが、空の場合は境界線がありません

  3. 3

    選択ボックスに境界線がありません

  4. 4

    私はreact-bootstrap-table-nextに境界線がありません

  5. 5

    ttk.OptionMenuにはアウトライン/境界線がありません

  6. 6

    WKWebViewは境界線の内側にPDFを表示します、境界線は必要ありません

  7. 7

    上部のdivには他の境界線がありますが、下部のdivの境界線は表示されます

  8. 8

    Windows 10では、一部のFormBorderStylesに境界線がありません

  9. 9

    PhpExcelからPhpSpreadsheetへの移行

  10. 10

    CSSの境界線の下部に角がありません

  11. 11

    PDFビュー(XSLT)にCALSテーブルの境界線がありません

  12. 12

    PhpOffice / PhpSpreadsheet "クラスPhpOffice \ PhpSpreadsheet \ IOFactoryを読み込めませんでした"

  13. 13

    行スパンのあるテーブルには境界線がありません

  14. 14

    React NativeTextInputには常に黒い境界線があります

  15. 15

    Divの下部に境界線があり、パディングやマージンはありません

  16. 16

    Vuetfiyv-text-labelに境界線がありません

  17. 17

    Android 2.3.6では、境界線の半径とボックスの影は効果がありません。

  18. 18

    Androidのxmlボタンには細かい境界線があります

  19. 19

    BootstrapNavbarに奇妙なヘアライン境界線があります

  20. 20

    パッケージphp7.0-phpoffice / phpspreadsheetが見つかりません

  21. 21

    CardboardUnity-ステレオ画像に黒い境界線がありません

  22. 22

    CSS-textareaの不透明度:テキストですが境界線ではありません

  23. 23

    geom_tileの境界線がコーナーにありません

  24. 24

    CSS3は境界線がありません。つまり、線が隅で交わっていません。

  25. 25

    PhpSpreadsheet:SUMIF式が機能していません

  26. 26

    破線の境界線がマージされないようにする方法はありますか?

  27. 27

    phpspreadsheetでの動的セルマージ

  28. 28

    PhpSpreadsheetはセルの背景色を白に設定します

  29. 29

    テーブルの境界線がありません

ホットタグ

アーカイブ