ラベル php の投稿を表示しています。 すべての投稿を表示
ラベル php の投稿を表示しています。 すべての投稿を表示

2014年11月19日水曜日

phpExcelでの画像サイズと、EXCELの印刷時の注意

写真サイズの、Lサイズ(89×127)の場合。
$hoge->setHeight(336.3);
$hoge->setWidth(479.8);

setHeightとsetWidthに対して、
上記のように指定すると、Lサイズで画像がEXCELに出力される。
しかしEXCELの印刷プレビューをすると、少し大きく表示されてしまう。
画像の間隔に余白がない状態だ。
(Microsoftには、シートの状態と印刷プレビューの状態で見え方が異なる状態を早く直して頂きたい・・)
なお、余白はデフォルトのままである。
※ 上下:1.9、左右:1.8、ヘッダ&フッタ:0.8

従って、上記の設定値の95%を設定するが、
これでは確かに印刷プレビューではおさまっているようにみえるが、
最後の3ページ目がなぜか4ページ目にはみでてしまうため、さらに縮小する必要があった。
$hoge->setHeight(319.5);
$hoge->setWidth(455.8);

最終的には、初めの設定値の92%に収まった。
※ 次のページに少し出ない、ぎりぎりのサイズ
$hoge->setHeight(309.4);
$hoge->setWidth(441.4);

さらにEXCELの中身も注意しなければならない。
シート全体を印刷範囲クリアをしたとしても、
以前に編集したことがあれば、その部分まで印刷されてしまう。
つまり3ページで画像が終わりだとしても、空白の状態で4・5ページ目が出力される。
よってそういうときは、該当行をすべて削除してしまえばいい。

2014年11月18日火曜日

phpExcelの画像サイズが統一されない原因について


setHeightとsetWidthで指定をしても、画像が統一されていなかったが、
それはデフォでは、「縦横比を固定する」が効いているからである。
したがって、ソースに
「$hoge->setResizeProportional(false);」
を追加してあげて、固定しないとすれば問題ない。


(参考)
 http://docolog.cocolog-nifty.com/papalog/2012/02/php-phpexcel-f9.html

phpExcelについて


PHPからEXCELを出力するライブラリがあるが、
こちらの注意点を2点列挙する。

(1)
ソースファイルをUTF-8で保存する際に、
BOMを付加させて保存すると、EXCEL出力時にファイルが壊れているとエラーメッセージが表示されて、開くことができない。

(2)
EXCELに貼り付ける画像の縦横を調整する、setWidthAndHeightなどが存在するが、決して指定したどおりに全ての画像がそろってくれるわけではない。
つまり貼り付けるオリジナルの画像の大きさがバラバラだとしたら、出力されたEXCEL内の画像もバラバラだったりする。

2014年7月14日月曜日

phpExcel 罫線を消す 列番号指定による値セット


罫線を消す 左
$objSheet->getStyleByColumnAndRow(0, 1)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_NONE);

罫線を消す 右
$objSheet->getStyleByColumnAndRow(0, 1)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_NONE);

行列番号指定による値セット
$objSheet->setCellValueByColumnAndRow( $colIndex, $rowIndex, '値');

行列番号じゃなく、AとかBとか指定による値セット
$objSheet->setCellValue( 'B10', '値');

phpExcel セル結合、解除、縮小して全体表示

縮小して全体を表示
setShrinkToFit() … boolean
$objSheet->getStyle( 'B1')->getAlignment()->setShrinkToFit(true);

セルを結合する
$sheet->mergeCells('B10:C21');

セルの結合を解除する
$sheet->unmergeCells('B10:C21');

2014年5月22日木曜日

phpexcelでの高さ自動調整



// 10行目の行を引数なしで高さ自動調整
$objSheet->getRowDimension(10)->setRowHeight();

2014年5月19日月曜日

PHPExcelでの名前定義に値をセットする際の注意点


エクセルテンプレートを使用する際、名前定義が複数カラムを指定されていると
値セット時にエラーになる。


名前定義「entry」が結合セル「$A$1:$A:$3」であっても、
名前定義自体は、$A$1:$A:$3ではなく、$A$1にしないと値セットされない。


$objSheet->setCellValue('entry', .100'名' );



2014年5月8日木曜日

PHPExcelでエクセルの設定諸々


// グリッドラインを消す
$objSheet->setPrintGridlines(false);
$objSheet->setShowGridlines(false);

// シートロック パスワード
$objSheet->getProtection()->setPassword('1234');
// シートロック 並び替え
$objSheet->getProtection()->setSort(true);
// シートロック 行追加
$objSheet->getProtection()->setInsertRows(true);
// シートロック セル書式
$objSheet->getProtection()->setFormatCells(true);
// シートロック 行削除
$objSheet->getProtection()->setDeleteRows(true);